Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL mengendalikan diakritik dalam set aksara dan himpunan?
Pemetaan Aksara Set Aksara MySQL
Dalam MySQL, gelagat lalai untuk banyak himpunan Unikod, termasuk utf8_general_ci dan utf8_unicode_ci, adalah untuk memetakan aksara dengan diakritik, seperti "åäö," kepada aksara asas mereka tanpa diakritik, seperti "aao." Ini bermakna pertanyaan yang menggunakan aksara diakritik mungkin tidak selalu menghasilkan hasil yang diharapkan.
Tingkah laku ini mempengaruhi pertanyaan dalam konteks terminal dan PHP. Ia timbul daripada peraturan pengekodan dan penyusunan aksara khusus yang digunakan oleh MySQL.
Sebab Pemetaan
Pemetaan aksara diakritik kepada aksara asasnya bertujuan untuk menyediakan pengalaman carian yang lebih umum dan konsisten. Dengan menganggap aksara dengan dan tanpa diakritik sebagai setara, pangkalan data boleh mengembalikan hasil yang memenuhi julat pertanyaan pengguna yang lebih luas.
Melumpuhkan Pemetaan
Jika anda ingin melumpuhkan pemetaan ini dan lakukan carian sensitif huruf besar dan kecil sambil mengekalkan aksara diakritik, anda boleh menggunakan kaedah berikut:
Nyatakan Pengumpulan untuk Pertanyaan Khusus:
Apabila melaksanakan pertanyaan, anda boleh menentukan pengumpulan secara eksplisit menggunakan kata kunci COLLATE . Sebagai contoh, anda boleh menggunakan pertanyaan berikut untuk mengekalkan diakritik:
<code class="sql">select * from topics where name COLLATE utf8_bin = 'Harligt';</code>
Alternatif
Jika anda memerlukan carian tidak peka huruf besar-kecil tanpa penukaran umlaut, anda boleh mempertimbangkan untuk menggunakan indeks teks penuh dengan tokenizer ASCII_WS. Tokenizer ini mengabaikan tanda baca dan diakritik, membolehkan carian tidak peka huruf besar-kecil yang cekap.
Kesimpulan
Layanan MySQL terhadap aksara dengan diakritik boleh menjejaskan gelagat pertanyaan carian. Memahami peraturan pemetaan lalai dan memilih pilihan pengumpulan yang sesuai adalah penting untuk memastikan pertanyaan mencerminkan kriteria carian yang dimaksudkan dengan tepat.
Atas ialah kandungan terperinci Bagaimanakah MySQL mengendalikan diakritik dalam set aksara dan himpunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!