Rumah > pangkalan data > tutorial mysql > Mengapa Klausa WHERE dan LIKE MySQL Memerlukan Melarikan Segaris Ke Belakang yang berbeza?

Mengapa Klausa WHERE dan LIKE MySQL Memerlukan Melarikan Segaris Ke Belakang yang berbeza?

Patricia Arquette
Lepaskan: 2025-01-06 20:34:41
asal
618 orang telah melayarinya

Why Do MySQL's WHERE and LIKE Clauses Require Different Backslash Escaping?

Escapering Backslash dalam MySQL: Penggunaan dalam WHERE dan LIKE Klausa

Pertimbangkan pertanyaan berikut yang mencari tajuk yang mengandungi backslash:

(SELECT * FROM `titles` WHERE title = 'test\')
UNION ALL
(SELECT * FROM `titles` WHERE title LIKE 'test\\')
Salin selepas log masuk

Output menunjukkan bahawa garis miring ke belakang tidak terlepas dalam klausa MANA. Walau bagaimanapun, garis miring ke belakang tambahan diperlukan untuk klausa LIKE.

Mengapa Perbezaannya?

Dalam MySQL, garis miring ke belakang () berfungsi sebagai aksara melarikan diri dalam LIKE secara lalai. Menurut manual MySQL untuk LIKE:

"Oleh kerana MySQL menggunakan sintaks C escape dalam rentetan... anda mesti menggandakan mana-mana '' yang anda gunakan dalam rentetan LIKE. Contohnya, untuk mencari 'n', nyatakan ia sebagai 'n'. Untuk mencari '', tentukan ia sebagai '\' ini kerana garis miring ke belakang dilucutkan sekali oleh penghurai dan sekali lagi apabila padanan corak dibuat, meninggalkan satu garis miring ke belakang untuk dipadankan terhadap."

Escaping Backslashes

Walau bagaimanapun, MySQL menyediakan keupayaan untuk menukar aksara melarikan diri menggunakan kata kunci ESCAPE. Sebagai contoh, pertanyaan berikut akan menggunakan aksara paip (|) sebagai aksara melarikan diri:

SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
Salin selepas log masuk

Dengan pertanyaan ini, hanya satu garis miring ke belakang diperlukan dalam klausa LIKE, kerana aksara paip akan digunakan untuk melarikan diri.

Atas ialah kandungan terperinci Mengapa Klausa WHERE dan LIKE MySQL Memerlukan Melarikan Segaris Ke Belakang yang berbeza?. 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