Mencari Slashes dalam MySQL: Melarikan Diri Pertimbangan untuk WHERE (EQ) dan LIKE
Apabila mencari garis miring () dalam MySQL menggunakan WHERE ( =) dan LIKE, adalah penting untuk memahami perbezaan halus dalam keperluan melarikan diri.
Pengendali LIKE menganggap sebagai watak melarikan diri secara lalai, membolehkan pengguna memadankan aksara khas seperti petikan atau garis miring. Walau bagaimanapun, apabila menggunakan operator WHERE (=), melarikan diri tidak diperlukan.
Mengapa Perbezaannya?
Dalam LIKE, bertindak sebagai pemegang tempat untuk watak istimewa yang mengikutinya . Untuk memadankan garis miring terbalik literal, ia mesti dilepaskan dengan tambahan . Ini kerana MySQL memotong yang pertama apabila menghuraikan pertanyaan dan sekali lagi apabila memadankan corak. Oleh itu, "ujian" dalam pertanyaan akan menghasilkan "ujian" yang sepadan, bukan "ujian". Untuk mengambil kira perkara ini, rentetan carian hendaklah "ujian".
Escaping for WHERE (=)
Sementara melarikan diri tidak diperlukan untuk WHERE (=), a single masih akan dilucutkan oleh MySQL semasa penghuraian. Oleh itu, jika nilai carian mengandungi literal diikuti dengan aksara, adalah disyorkan untuk melepaskannya dengan yang lain. Sebagai contoh, "ujian" harus dilepaskan sebagai "ujian" untuk memadankan "ujian".
Watak Melarikan Diri Ganti
Jika menggunakan watak lalai sebagai watak melarikan diri adalah bermasalah , MySQL membenarkan menentukan aksara melarikan diri alternatif dengan kata kunci ESCAPE. Contohnya:
<code class="sql">SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'</code>
Dalam kes ini, "|" digunakan sebagai aksara melarikan diri, dan pertanyaan akan sepadan dengan "ujian" dan bukannya "ujian".
Kesimpulan
Memahami keperluan melarikan diri untuk garis miring dalam MySQL adalah penting untuk memastikan hasil carian yang tepat. Dengan mengikut garis panduan yang digariskan di atas, pengguna boleh menanyakan jadual data dengan berkesan dan mencari padanan yang mengandungi garis miring menggunakan operator WHERE (=) dan LIKE.
Atas ialah kandungan terperinci Bagaimanakah cara saya melarikan diri daripada garis miring dalam MySQL untuk WHERE (=) dan Operator LIKE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!