Rumah > pangkalan data > tutorial mysql > Mengapa Carian Tidak Peka Huruf dalam MySQL dengan Operator LIKE dan Pengekodan utf8_general_ci Sensitif Huruf?

Mengapa Carian Tidak Peka Huruf dalam MySQL dengan Operator LIKE dan Pengekodan utf8_general_ci Sensitif Huruf?

Susan Sarandon
Lepaskan: 2024-11-08 14:12:02
asal
1110 orang telah melayarinya

Why is Case-Insensitive Searching in MySQL with LIKE Operator and utf8_general_ci Encoding Case-Sensitive?

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%';
Salin selepas log masuk

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;
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan