Rumah >pangkalan data >tutorial mysql >Mengapa Carian Tidak Peka Huruf dalam MySQL dengan Operator LIKE dan Pengekodan utf8_general_ci Sensitif Huruf?
Carian Tidak Peka Huruf dalam MySQL
Siaran ini meneroka isu di mana pertanyaan MySQL menggunakan operator LIKE dalam jadual dengan pengekodan utf8_general_ci dan enjin storan MyISAM menghasilkan carian sensitif huruf besar kecil.
Untuk menyelesaikan masalah ini, terdapat dua penyelesaian yang disyorkan:
1. Menggunakan Rentetan Perduaan:
Dengan menambahkan kata kunci BINARI pada pengendali LIKE, carian tidak sensitif huruf besar boleh dicapai:
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
Pendekatan ini berprestasi lebih baik daripada yang lain kerana ia memaksa rentetan binari perbandingan, menjadikannya lebih cekap.
2. Menggunakan COLLATE:
Sebagai alternatif, kata kunci COLLATE boleh digunakan untuk menentukan peraturan penyusunan khusus:
SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
Dengan menggunakan pengumpulan utf8_bin, perbandingan tidak sensitif huruf besar-besaran dikuatkuasakan. Walaupun kaedah ini memberikan lebih fleksibiliti, ia mungkin mempunyai kesan prestasi yang sedikit berbanding dengan pendekatan rentetan binari.
Atas ialah kandungan terperinci Mengapa Carian Tidak Peka Huruf dalam MySQL dengan Operator LIKE dan Pengekodan utf8_general_ci Sensitif Huruf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!