首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 轉義字符完整速查表:字串、識別符、二進位資料與 LIKE 模式

     編輯:MySQL 資料庫相關知識

核心轉義序列

序列含義ASCII
\0NUL 字元0
\n換行10
\t定位符9
\r歸位13
\b退格8
\'單引號39
\"雙引號34
\\反斜線92
\%字面 %(LIKE 模式)37
\_字面 _(LIKE 模式)95

注意:在某些字串語境下 \%/\_ 會保留反斜線,實際儲存為 \%/\_ 而非 %/_。

引號包裹與轉義規則

必須轉義

  • 單引號字串內的單引號:\' 或 ''(重複)。
  • 雙引號字串內的雙引號:\" 或 ""。

無需轉義

  • 單引號字串內的雙引號:直接寫 "。
  • 雙引號字串內的單引號:直接寫 '。

示範查詢


SELECT 'hello', '"hello"', '""hello""', 'hel\'lo', '\'hello';
+-------+----------+-----------+--------+--------+
| hello | "hello"  | ""hello"" | hel'lo | 'hello |
+-------+----------+-----------+--------+--------+

SELECT "hello", "'hello'", "''hello''", "hel\"lo", "\"hello";
+-------+----------+-----------+---------+--------+
| hello | 'hello'  | ''hello'' | hel"lo  | "hello |
+-------+----------+-----------+---------+--------+

SELECT "This\nIs\nFour\nlines";
+--------------------+
| This
Is
Four
lines              |
+--------------------+

二進位資料插入 BLOB 必須轉義的字元

字元ASCII轉義序列
NUL0\0
反斜線92\\
單引號39\'
雙引號34\"

最佳實踐

  • 應用層**使用參數化查詢**(Prepared Statement),驅動自動處理轉義,杜絕手工拼接。
  • 若必須手工構建 SQL,務必使用驅動提供的轉義函數(如 PHP mysql_real_escape_string、Java PreparedStatement、Python cursor.execute(sql, params))。
  • 避免在 SQL 中直接嵌入二進位資料,改用參數綁定或 LOAD FILE。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved