MySQL LIKE Query dengan Underscore
Dalam SQL, pengendali LIKE boleh digunakan untuk mencari corak dalam rentetan. Walau bagaimanapun, apabila menggunakan LIKE dengan garis bawah (_), pertimbangan khusus mesti diambil.
Isunya
Apabila menggunakan LIKE untuk mencari rentetan yang mengandungi garis bawah, garis bawah dianggap sebagai kad bebas. Ini bermakna pertanyaan berikut:
SELECT id FROM images WHERE img_path LIKE 'abc_%'
akan mengembalikan semua baris dalam jadual 'imej' di mana lajur 'img_path' bermula dengan "abc," termasuk baris dengan garis bawah (cth., "abcde_1.jpg" ).
Penyelesaian
Untuk melarikan diri watak khas dan pastikan pengendali LIKE hanya sepadan dengan rentetan bermula dengan "abc_," adalah perlu untuk melepaskan garis bawah dengan garisan ke belakang (). Pertanyaan yang betul ialah:
SELECT id FROM images WHERE img_path LIKE 'abc\_%'
Penjelasan
Dengan melepaskan garis bawah, pengendali LIKE menganggapnya sebagai aksara literal. Ini memerlukan lajur 'img_path' untuk bermula dengan "abc_" untuk dipadankan. Akibatnya, hanya baris 1 dan 2 dikembalikan.
Atas ialah kandungan terperinci Bagaimana untuk melarikan diri garis bawah dalam MySQL LIKE Queries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!