Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Carian Tidak Sensitif Diakritik dalam MySQL untuk Aksen Sepanyol?

Bagaimana untuk Melakukan Carian Tidak Sensitif Diakritik dalam MySQL untuk Aksen Sepanyol?

DDD
Lepaskan: 2024-11-01 07:48:31
asal
577 orang telah melayarinya

How to Perform Diacritic Insensitive Search in MySQL for Spanish Accents?

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;
Salin selepas log masuk

atau

SET NAMES utf8;
Salin selepas log masuk

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'
Salin selepas log masuk

Contoh:

mysql> SET NAMES latin1;
mysql> SELECT 'lápiz' LIKE 'lapiz';
+-----------------------+
| 'lápiz' LIKE 'lapiz' |
+-----------------------+
|                     0 | 
+-----------------------+
Salin selepas log masuk

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 | 
+-----------------------+
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan