Bagaimanakah MySQL mengendalikan diakritik dalam set aksara dan himpunan?

DDD
Lepaskan: 2024-10-25 20:55:02
asal
898 orang telah melayarinya

How does MySQL handle diacritics in character sets and collations?

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:

  • Gunakan Pengumpulan yang Memelihara Diakritik:
    Tukar kepada pengumpulan yang melayan watak dengan dan tanpa diakritik secara berbeza. Contohnya ialah utf8_bin, yang melakukan perbandingan binari rentetan.
  • 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>
    Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!