Apabila membuat pertanyaan untuk forward Slash () dengan MySQL's WHERE klausa, dua senario berbeza timbul : apabila menggunakan operator sama (=) dan apabila menggunakan LIKE operator.
Untuk operator =, tiada pelarian tambahan diperlukan. MySQL secara automatik melepaskannya untuk mengekalkan integriti nilai yang dibandingkan. Dalam contoh pertanyaan anda, (SELECT * FROM titles where title = 'test') akan mengembalikan rekod dengan tajuk 'test', seperti yang dijangkakan.
Sebaliknya, pengendali LIKE memerlukan pelepasan dua kali garis miring ke hadapan () kerana ia ditafsirkan sebagai watak khas untuk melarikan diri. Untuk mencari satu dalam klausa SUKA, anda perlu menentukannya sebagai gantinya. Ini kerana MySQL menjalurkan garis miring ke belakang dua kali: sekali semasa menghuraikan dan sekali lagi semasa padanan corak.
Dalam contoh pertanyaan anda, (PILIH * DARI tajuk yang mana tajuk SEPERTI 'ujian\') akan mengembalikan rekod dengan tajuk 'ujian ', kerana garis miring ke belakang berganda () mengimbangi pelucutan semasa pemprosesan.
Jika mahu, anda boleh menyesuaikan watak melarikan diri untuk LIKE dengan menggunakan kata kunci ESCAPE. Sebagai contoh, anda boleh menentukan:
SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
Dalam kes ini, paip (|) berfungsi sebagai aksara melarikan diri dan bukannya garis sengkang ke belakang lalai (). Ini membolehkan anda menggunakan pertanyaan LIKE anda tanpa perlu melarikan diri dua kali.
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Forward Slashes (/) dalam Klausa WHERE MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!