Carian Tidak Sensitif Diakritik MySQL untuk Loghat Bahasa Sepanyol
Apabila berurusan dengan data yang mengandungi aksara beraksen, mungkin sukar untuk melakukan carian berkesan yang kekal tidak sensitif kepada diakritik. Ini amat relevan dalam bahasa seperti Sepanyol, di mana perkataan biasanya termasuk aksen (á, é, í, ó, ú).
Masalah:
Pertanyaan pangkalan data seperti "PILIH * DARI jadual DI MANA perkataan SEPERTI '%word%'" mungkin tidak mengembalikan hasil yang tepat jika istilah carian mengandungi variasi aksen yang berbeza, seperti "lapiz" dan bukannya "lápiz."
Penyelesaian : Set dan Pengumpulan Aksara
Untuk mendayakan carian tidak sensitif diakritik, adalah penting untuk menetapkan set aksara dan penyusunan yang sesuai untuk sambungan pangkalan data anda. Dalam MySQL, ini boleh dicapai menggunakan arahan berikut:
SET NAMES latin1;
atau
SET NAMES utf8;
Set aksara "latin1" biasanya digunakan untuk bahasa seperti Sepanyol, yang mempunyai bilangan terhad daripada aksara beraksen. "utf8" ialah set aksara yang lebih komprehensif yang menyokong julat aksara aksen yang lebih luas.
Setelah set aksara ditetapkan, anda boleh menggunakan sintaks berikut untuk melakukan carian tidak sensitif diakritik:
SELECT * FROM table WHERE word LIKE _utf8'search_term'
Contoh:
mysql> SET NAMES latin1; mysql> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 0 | +-----------------------+
Dalam contoh ini, carian untuk "lapiz" tidak akan mengembalikan "lápiz" kerana set aksara "latin1" tidak menganggap diakritik sebagai boleh ditukar ganti.
mysql> SET NAMES utf8; mysql> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 1 | +-----------------------+
Walau bagaimanapun, menggunakan set aksara "utf8", carian akan sepadan dengan betul "lápiz" dan "lapiz" kerana sokongannya terhadap ketidakpekaan diakritik.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Carian Tidak Sensitif Diakritik dalam MySQL untuk Aksen Sepanyol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!