Carian MySQL Sensitif Aksen: Panduan Komprehensif
Sensitiviti aksen boleh menimbulkan cabaran dalam pertanyaan MySQL, terutamanya apabila mencari aksara dengan diakritik. Artikel ini meneroka nuansa pertanyaan sensitif aksen dalam MySQL dan menyediakan penyelesaian praktikal.
Masalah dengan Pertanyaan Tidak Sensitif Aksen
Pertimbangkan dua entri dalam jadual UTF-8 : "abad" dan "abád". Pertanyaan yang mencari "abád" juga boleh mengembalikan "abad" kerana ketidakpekaan aksen dalam pengumpulan lalai.
Penyelesaian
1. Pengumpulan Lajur
Untuk memastikan kepekaan loghat, nyatakan himpunan yang membezakan antara aksara beraksen dan tanpa aksen. Contohnya:
ALTER TABLE words MODIFY `word` VARCHAR(10) COLLATE utf8_bin;
2. Operator BINARI
Apabila mencari padanan tepat perkataan beraksen, gunakan operator BINARI:
SELECT * FROM `words` WHERE BINARY `word` = 'abád';
3. Klausa COLLATE
Dalam MySQL 8.0 dan lebih baru, klausa COLLATE membenarkan anda untuk menentukan himpunan khusus untuk perbandingan:
SELECT * FROM `words` WHERE `word` = 'abád' COLLATE utf8mb4_bin;
4. Pengumpulan Khusus Bahasa
Untuk kes di mana bahasa memerlukan pengendalian loghat khusus, pertimbangkan untuk menggunakan himpunan khusus bahasa seperti utf8_polish_ci atau latin1_swedish_ci.
Nota Tambahan 🎜>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Carian Sensitif Aksen dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!