Rumah >pangkalan data >tutorial mysql >Mengapakah Melarikan Garis Garis Belakang Berbeza Antara Klausa WHERE dan LIKE MySQL?
Escape Characters dalam MySQL WHERE dan Klausa LIKE
Dalam MySQL, apabila mencari aksara khas seperti garis miring ke belakang () dalam klausa WHERE, tiada pelarian tambahan diperlukan. Walau bagaimanapun, untuk klausa SUKA, sengkang ke belakang berganda () diperlukan. Ini disebabkan oleh penggunaan lalai MySQL sebagai aksara melarikan diri dalam pernyataan LIKE.
Memahami KENAPA dan BAGAIMANA Aksara Melarikan Diri Berfungsi di WHERE dan LIKE
Dalam klausa WHERE, MySQL membandingkan nilai yang ditentukan terus kepada nilai lajur tanpa pemprosesan selanjutnya. Oleh itu, satu garis miring ke belakang () adalah mencukupi untuk memadankan aksara garis miring ke belakang dalam lajur.
Dalam klausa SEPERTI, MySQL terlebih dahulu menanggalkan sebarang garis miring ke belakang daripada corak yang ditentukan. Kemudian, semasa proses padanan corak, ia mengalih keluar garis serong ke belakang yang tinggal. Proses pelucutan berganda ini memerlukan garis miring ke belakang () berganda untuk melepaskan aksara garis miring ke belakang dan membenarkannya dipadankan dalam klausa LIKE.
Contoh
Pertanyaan SQL yang disediakan menunjukkan perbezaannya:
(SELECT * FROM `titles` WHERE title = 'test\') UNION ALL (SELECT * FROM `titles` WHERE title LIKE 'test\\')
Output:
| ID | TITLE | -------------- | 1 | test\ | | 1 | test\ |
Kedua garis miring ke belakang () diperlukan dalam klausa LIKE untuk memadankan garis miring ke belakang dalam nilai lajur.
Menukar Aksara Escape
Jika mahu, anda boleh menukar aksara melarikan diri yang digunakan dalam pernyataan LIKE dengan menyatakan aksara yang dikehendaki selepas kata kunci ESCAPE:
SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
Dalam kes ini, paip (|) digunakan sebagai aksara melarikan diri, membenarkan satu garisan ke belakang () dipadankan dalam klausa SUKA.
Atas ialah kandungan terperinci Mengapakah Melarikan Garis Garis Belakang Berbeza Antara Klausa WHERE dan LIKE MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!