Bagaimana untuk Melakukan Carian Tidak Sensitif Diakritik dalam MySQL?

Susan Sarandon
Lepaskan: 2024-11-01 12:38:02
asal
811 orang telah melayarinya

How to Perform Diacritic Insensitive Searches in MySQL?

Carian Tidak Sensitif Diakritik MySQL

Apabila menggunakan perkataan Sepanyol yang mengandungi aksen, mungkin sukar untuk melakukan pertanyaan carian sambil mengira tanda diakritik . Artikel ini menyediakan penyelesaian untuk melaksanakan carian tidak sensitif diakritik dalam pangkalan data MySQL menggunakan gabungan set aksara dan himpunan.

Contoh yang disediakan:

$result = mysql_query("SELECT * FROM $lookuptable WHERE disabled = '0' AND name LIKE '%$q%' OR productCode LIKE '%$q%' LIMIT $sugglimit");
Salin selepas log masuk

tidak mengambil kira perbezaan diakritik dan mungkin kecualikan hasil carian yang mengandungi perkataan seperti "lápiz" apabila mencari "lapiz."

Untuk mencapai diakritik ketidakpekaan, seseorang boleh menggunakan perintah MySQL SET NAMES untuk menentukan set aksara tertentu dan penyusunan untuk sambungan pangkalan data. Dengan menetapkan set aksara kepada latin1 dan himpunan kepada yang tidak sensitif aksen, pertanyaan boleh memadankan kedua-dua perkataan dengan dan tanpa aksen.

Contoh:

SET NAMES latin1;
SELECT 'lápiz' LIKE 'lapiz';
Salin selepas log masuk

Pertanyaan ini akan mengembalikan 0, menunjukkan bahawa "lápiz" dan "lapiz" tidak sama.

Dengan bertukar kepada set aksara utf8:

SET NAMES utf8;
SELECT 'lápiz' LIKE 'lapiz';
Salin selepas log masuk

Pertanyaan akan mengembalikan 1, menunjukkan bahawa carian kini tidak sensitif diakritik.

Untuk menyatakannya secara eksplisit corak harus sepadan dengan rentetan UTF-8, seseorang boleh menggunakan _utf8 awalan:

SET NAMES latin1;
SELECT _utf8'lápiz' LIKE _utf8'lapiz';
Salin selepas log masuk

Dalam contoh ini, pertanyaan akan mengembalikan 1, mengesahkan ketidakpekaan diakritik walaupun secara eksplisit menggunakan set aksara latin1.

Untuk pemahaman lanjut, rujuk dokumentasi MySQL tentang Character Tetapkan Sokongan.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Carian Tidak Sensitif Diakritik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!