Sensitiviti Kes Pertanyaan MySQL SELECT
Secara lalai, pertanyaan MySQL SELECT adalah tidak sensitif huruf. Ini bermakna pertanyaan SELECT * FROM table` WHERE `Value` = "iaresavage" akan mengembalikan hasil walaupun nilai lajur Value` sebenarnya adalah 'IAreSavage'.
Mengatasi Sensitiviti Kes
Walau bagaimanapun, anda boleh mengatasi gelagat lalai ini dan melakukan perbandingan sensitif huruf besar-besaran menggunakan pengendali binari. Untuk melakukan ini, ubah suai pertanyaan anda seperti berikut:
SELECT * FROM `table` WHERE BINARY `Value` = "iaresavage"
Kini, pertanyaan hanya akan mengembalikan hasil jika nilai lajur Nilai betul-betul sepadan dengan rentetan yang ditentukan, tanpa mengira kes.
Contoh
Pertimbangkan perkara berikut jadual:
Value |
---|
iaresavage |
IAreSavage |
Jika anda melaksanakan pertanyaan berikut:
SELECT * FROM `table` WHERE `Value` = "iaresavage"
Ia akan mengembalikan kedua-dua baris kerana pertanyaan itu tidak peka huruf besar-kecil.
Walau bagaimanapun, jika anda melaksanakan pertanyaan berikut:
SELECT * FROM `table` WHERE BINARY `Value` = "iaresavage"
Ia hanya akan mengembalikan baris pertama kerana perbandingan sensitif huruf besar-besaran menghapuskan baris kedua.
Atas ialah kandungan terperinci Bagaimanakah MySQL Mengendalikan Sensitiviti Kes dalam Pertanyaan SELECT, dan Bagaimana Saya Boleh Mengatasinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!