資料入庫時,特殊字符若不轉義會導致語法錯誤或資料錯誤。本文整理 MySQL 官方識別的轉義序列與各種引號包裹場景的處理規則。
| 序列 | 含義 | ASCII |
|---|---|---|
\0 | NUL 字符 | 0 |
\' | 單引號 | 39 |
\" | 雙引號 | 34 |
\b | 退格符 | 8 |
\n | 換行符 | 10 |
\r | 回車符 | 13 |
\t | 製表符 | 9 |
\Z | Control-Z (Windows EOF) | 26 |
\\ | 反斜線本身 | 92 |
\% | 百分號(用於 LIKE 字面匹配) | 37 |
\_ | 下劃線(用於 LIKE 字面匹配) | 95 |
提示:在某些語境下直接用 % 或 _ 會被視為通配符,需轉義才能匹配字面字符。
''(兩個單引號)或 \' 轉義"" 或 \" 轉義mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+--------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+--------+-----------+--------+--------+
說明:
'hel''lo' → hel'lo'\'hello' → 'hello(反斜線轉義單引號)mysql_real_escape_string() 或對應語言的轉義函數