Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melarikan Tanda Peratusan Literal dalam Mod NO_BACKSLASH_ESCAPES MySQL?

Bagaimana untuk Melarikan Tanda Peratusan Literal dalam Mod NO_BACKSLASH_ESCAPES MySQL?

Barbara Streisand
Lepaskan: 2024-11-26 01:29:11
asal
531 orang telah melayarinya

How to Escape Literal Percentage Signs in MySQL's NO_BACKSLASH_ESCAPES Mode?

Melepaskan Tanda Peratusan Literal dalam MySQL NO_BACKSLASH_ESCAPES Mod

Dalam MySQL, apabila mod NO_BACKSLASH_ESCAPES didayakan, garis miring ke belakang standard ialah () aksara melarikan diri kurang upaya. Ini boleh menimbulkan cabaran apabila cuba melepaskan peratus literal (%) atau garis bawah (_) aksara dalam pertanyaan SUKA.

Kaedah konvensional untuk melepaskan tanda peratus, menggunakan %, menjadi tidak berkesan dalam mod NO_BACKSLASH_ESCAPES. Seperti yang ditunjukkan dalam pertanyaan yang disediakan:

SELECT * FROM mytable
WHERE mycol LIKE '5\% off'
Salin selepas log masuk

...pertanyaan ini akan gagal mengembalikan hasil yang diingini apabila mod NO_BACKSLASH_ESCAPES didayakan.

Penyelesaian dengan Aksara Melarikan diri

Untuk melepaskan tanda peratus literal dalam mod NO_BACKSLASH_ESCAPES, anda mesti menggunakan watak melarikan diri. Watak escape menyatakan bahawa watak berikut harus ditafsirkan secara literal, bukan sebagai watak khas.

Dalam MySQL, watak escape boleh menjadi mana-mana aksara bukan abjad angka. Sebagai contoh, mari kita gunakan aksara sengkang ke belakang () sebagai watak melarikan diri:

select * from mytable
where mycol like '5\% off' escape '\';
Salin selepas log masuk

Dalam pertanyaan ini, sengkang ke belakang sebelum tanda peratus menunjukkan bahawa tanda peratus harus dianggap sebagai aksara literal, bukan kad bebas. .

Penyelesaian Alternatif dengan Karakter Melarikan Diri yang Berbeza

Untuk memastikan keserasian dengan kedua-dua mod NO_BACKSLASH_ESCAPES dan mod standard, anda boleh menggunakan aksara yang berbeza sebagai watak melarikan diri. Ini membolehkan pertanyaan berfungsi tanpa mengira tetapan mod.

Sebagai contoh, mari gunakan aksara paip (|) sebagai aksara melarikan diri:

select * from mytable
where mycol like '5|% off' escape '|';
Salin selepas log masuk

Dalam kes ini, aksara paip sebelum tanda peratus berfungsi sebagai watak melarikan diri, membolehkan pertanyaan berjaya dilaksanakan dalam kedua-dua mod standard dan NO_BACKSLASH_ESCAPES mod.

Atas ialah kandungan terperinci Bagaimana untuk Melarikan Tanda Peratusan Literal dalam Mod NO_BACKSLASH_ESCAPES MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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