Rumah > pangkalan data > tutorial mysql > Mengapakah Melarikan Garis Garis Belakang Berbeza Antara Klausa WHERE dan LIKE MySQL?

Mengapakah Melarikan Garis Garis Belakang Berbeza Antara Klausa WHERE dan LIKE MySQL?

Linda Hamilton
Lepaskan: 2025-01-06 21:55:45
asal
978 orang telah melayarinya

Why Does Escaping Backslashes Differ Between MySQL's WHERE and LIKE Clauses?

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\\')
Salin selepas log masuk

Output:

| ID | TITLE |
--------------
| 1 | test\ |
| 1 | test\ |
Salin selepas log masuk

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 '|'
Salin selepas log masuk

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!

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