Melepaskan Log Masuk Peratus Literal NO_BACKSLASH_ESCAPES Mod MySQL
Dalam mod NO_BACKSLASH_ESCAPES MySQL, melepaskan % aksara menggunakan kaedah biasa (%) bukanlah diiktiraf. Ini boleh menimbulkan cabaran apabila melakukan pertanyaan LIKE yang melibatkan tanda peratus literal.
Untuk melepaskan % atau _ literal dalam mod ini, aksara melarikan diri mesti ditentukan selepas kata kunci LIKE. Sintaks untuk berbuat demikian ialah:
SELECT * FROM table_name WHERE column_name LIKE 'pattern_with_escaped_character' escape 'escape_character';
Sebagai contoh, pertimbangkan jadual dengan nilai berikut:
Untuk mendapatkan semula semua baris yang mengandungi "% off", pertanyaan berikut boleh digunakan:
SELECT * FROM mytable WHERE mycol LIKE '5\% off' escape '\';
Perhatikan bahawa aksara melarikan diri ialah garis miring ke belakang (), diikuti dengan tanda peratus literal.
Sebagai alternatif, untuk membuat pertanyaan yang berfungsi tanpa mengira mod NO_BACKSLASH_ESCAPES, cara yang berbeza watak melarikan diri boleh digunakan. Contohnya:
SELECT * FROM mytable WHERE mycol LIKE '5|% off' escape '|';
Dalam kes ini, aksara paip (|) digunakan sebagai aksara melarikan diri. Dengan menyatakan watak melarikan diri, adalah mungkin untuk mengelak mekanisme melarikan diri berasaskan garisan terbalik lalai dan mencapai hasil yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Tanda Peratus Tersurat dalam Mod NO_BACKSLASH_ESCAPES MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!