Rumah >pangkalan data >tutorial mysql >Mengapa Klausa SQL WHERE Saya Memadankan Rentetan dengan Ruang Jejak?
Trailing Spaces dan SQL WHERE Klausa Padanan
Dalam SQL, klausa WHERE mendayakan penapisan data berdasarkan syarat yang ditentukan. Apabila memadankan nilai, memahami cara ruang dikendalikan adalah penting.
Dalam senario yang disediakan, pertanyaan digunakan untuk memilih ZoneReferences daripada jadual Zone dengan nilai ZoneReference yang ditentukan. Hasilnya secara tidak dijangka mengandungi ruang belakang, menimbulkan kebimbangan tentang kesahihan data.
Tingkah laku yang dihadapi adalah konsisten dengan tafsiran SQL Server terhadap klausa WHERE. Spesifikasi ANSI/ISO SQL-92 menentukan bahawa ruang belakang diabaikan semasa perbandingan. Padding digunakan untuk menyamakan panjang rentetan sebelum melakukan perbandingan, memastikan bahawa 'abc' dan 'abc ' dianggap setara.
Peraturan ini berlaku untuk kebanyakan operasi perbandingan, tetapi ia tidak berkenaan dengan predikat LIKE. Predikat LIKE direka bentuk untuk carian corak dan ruang mengekor di sebelah kanan tidak diabaikan.
Untuk mengelakkan kekeliruan, anda disyorkan untuk sentiasa memastikan medan data dipangkas dengan sewajarnya untuk menghapuskan ruang mengekor dan mencapai ketepatan hasil perbandingan.
Atas ialah kandungan terperinci Mengapa Klausa SQL WHERE Saya Memadankan Rentetan dengan Ruang Jejak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!