Rumah >pangkalan data >tutorial mysql >Mengapa `Harligt` dan `Härligt` Mengembalikan Keputusan yang Sama dalam MySQL?

Mengapa `Harligt` dan `Härligt` Mengembalikan Keputusan yang Sama dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 08:50:02667semak imbas

Why Do `Harligt` and `Härligt` Return the Same Results in MySQL?

Layanan MySQL terhadap Aksara Unikod: Ä, Ö dan Ü

Memang membingungkan untuk menemui hasil pertanyaan yang sama apabila mencari kedua-dua "Harligt " dan "Härligt" dalam MySQL. Tingkah laku ini berpunca daripada tetapan penyusunan lalai MySQL yang menyamakan aksara Unicode tertentu.

Himpunan Unicode bukan bahasa khusus MySQL, seperti utf8_general_ci dan utf8_unicode_ci, menganggap aksara tertentu sebagai setara, iaitu:

Ä = A
  • Ö = O
  • Ü = U
  • Akibatnya, kedua-dua pertanyaan menganggap ketiga-tiga aksara sebagai sama, sekali gus menghasilkan hasil yang sepadan .

Untuk menyelesaikan isu ini, terdapat dua pilihan:

    Tukar Pengumpulan:
  1. Tukar kepada pengumpulan yang tidak melakukan penyamaan aksara ini, seperti utf8_bin . Walau bagaimanapun, keputusan ini mungkin mempunyai implikasi yang lebih luas pada pemprosesan data.
  2. Timpa Pengumpulan untuk Pertanyaan Khusus:
  3. Untuk pertanyaan individu, adalah mungkin untuk mengatasi pengumpulan lalai dengan menyatakan secara eksplisit yang dikehendaki. Contohnya:
Pendekatan ini membenarkan carian sensitif huruf besar tanpa penukaran aksara automatik.
<code class="sql">select * from topics where name='Harligt' COLLATE utf8_bin;</code>

Jika carian tidak sensitif huruf besar diingini tetapi tanpa penukaran aksara, MySQL pada masa ini tidak menyediakan pengumpulan yang sesuai. Walau bagaimanapun, terdapat perbincangan berterusan dan penyelesaian yang berpotensi dalam komuniti.

Atas ialah kandungan terperinci Mengapa `Harligt` dan `Härligt` Mengembalikan Keputusan yang Sama dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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