Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah Saya Memerlukan Sebatan Ke Belakang Berganda Apabila Mencari Seratan Menggunakan Operator LIKE MySQL?

Mengapakah Saya Memerlukan Sebatan Ke Belakang Berganda Apabila Mencari Seratan Menggunakan Operator LIKE MySQL?

Linda Hamilton
Lepaskan: 2024-11-02 19:20:02
asal
997 orang telah melayarinya

Why Do I Need Double Backslashes When Searching for a Slash Using MySQL's LIKE Operator?

Memahami Urutan Escape MySQL untuk Pertanyaan Carian

Dalam MySQL, apabila mencari aksara slash () menggunakan klausa WHERE, terdapat perbezaan dalam keperluan untuk jujukan melarikan diri bergantung pada operator yang digunakan.

WHERE klausa dengan Equals (=) Operator

Untuk pengendali sama (=), tiada escape tambahan urutan diperlukan. Pertanyaan berikut akan mencari rekod dengan tajuk yang mengandungi aksara miring dengan betul:

<code class="sql">SELECT * FROM `titles` WHERE title = 'test\'</code>
Salin selepas log masuk

Ini kerana garis miring terbalik dilepaskan secara dalaman oleh MySQL sebelum melaksanakan perbandingan.

WHERE klausa dengan Operator LIKE

Walau bagaimanapun, apabila menggunakan operator LIKE, urutan pelarian tambahan diperlukan untuk garis miring ke belakang. Ini kerana pengendali LIKE mengikuti sintaks C escape, di mana dua garis miring ke belakang digunakan untuk melepaskan garis miring ke belakang yang lain. Oleh itu, untuk mencari aksara miring menggunakan LIKE, anda perlu menggunakan sintaks berikut:

<code class="sql">SELECT * FROM `titles` WHERE title LIKE 'test\\'</code>
Salin selepas log masuk

Watak Melarikan Diri Lalai

Secara lalai, garis miring ke belakang () digunakan sebagai watak melarikan diri dalam ungkapan SUKA. Ini boleh diubah dengan menentukan watak melarikan diri yang berbeza menggunakan klausa ESCAPE. Sebagai contoh, pertanyaan berikut akan menggunakan aksara paip (|) sebagai aksara melarikan diri:

<code class="sql">SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah Saya Memerlukan Sebatan Ke Belakang Berganda Apabila Mencari Seratan Menggunakan Operator LIKE MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan