在一個(gè)字符串中,如果某個(gè)序列具有特殊的含義,每個(gè)序列以反斜線符號(hào) (“\”)開頭,稱為轉(zhuǎn)義字符。 MySQL 識(shí)別下列轉(zhuǎn)義字符:
-
\0
-
一個(gè) ASCII 0 (
NUL
) 字符。 -
\'
- 一個(gè) ASCII 39 單引號(hào) (“'”) 字符。
-
\"
- 一個(gè) ASCII 34 雙引號(hào) (“"”) 字符。
-
\b
- 一個(gè) ASCII 8 退格符。
-
\n
- 一個(gè) ASCII 10 換行符。
-
\r
- 一個(gè) ASCII 13 回車符。
-
\t
- 一個(gè) ASCII 9 制表符(
TAB
)。 -
\z
- ASCII(26) (Control-Z)。這個(gè)字符可以處理在 Windows 系統(tǒng)中 ASCII(26) 代表一個(gè)文件的結(jié)束的問題。(當(dāng)使用
mysql database < filename
時(shí) ASCII(26) 可能會(huì)引起問題產(chǎn)生。) -
\\
- 一個(gè) ASCII 92 反斜線 (“\”) 字符。
-
\%
- 一個(gè) ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字實(shí)例,否則這里“%”將解釋為一個(gè)通配符。
-
\_
- 一個(gè) ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字實(shí)例,否則這里“_”將解釋為一個(gè)通配符。
注意如果在某些正文環(huán)境內(nèi)使用 “\%” 或 “\_”,將返回字符串 “\%” 和 “\_” 而不是 “%” 和 “_”。
- 一個(gè)字符串用單引號(hào)“'”來引用的,該字符串中的單引號(hào)“'”字符可以用“''”方式轉(zhuǎn)義。
- 一個(gè)字符串用雙引號(hào)“"”來引用的,該字符串中的“"”字符可以用“""”方式轉(zhuǎn)義。
- 你也可以繼續(xù)使用在引號(hào)前加一個(gè)轉(zhuǎn)義字符“\”來轉(zhuǎn)義的方式。
- 一個(gè)字符串用雙引號(hào)“"”來引用的,該字符串中的單引號(hào)“'”不需要特殊對(duì)待而且不必被重復(fù)或轉(zhuǎn)義。同理,一個(gè)字符串用單引號(hào)“'”來引用的,該字符串中的雙引號(hào)“"”不需要特殊對(duì)待而且不必被重復(fù)或轉(zhuǎn)義。
下面顯示的 SELECT
演示引號(hào)和轉(zhuǎn)義是如何工作:
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "This\nIs\nFour\nlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+
?
如果你想要把二進(jìn)制數(shù)據(jù)插入到一個(gè)字符類型的字段中(例如BLOB
),下列字符必須由轉(zhuǎn)義序列表示:
-
NUL
- ASCII 0,你應(yīng)該用 “\0”(一個(gè)反斜線和一個(gè)ASCII “0”字符)表示它。
-
\
- ASCII 92,反斜線。需要用 “\\” 表示。
-
'
- ASCII 39,單引號(hào)。需要用 “\'” 表示。
-
"
- ASCII 34,雙引號(hào)。需要用 “\"” 表示。?
- ?
你應(yīng)該在任何可能包含上述特殊字符的字符串中使用轉(zhuǎn)義函數(shù)!
另外,很多 MySQL API 提供了一些占位符處理能力,這允許你在查詢語(yǔ)句中插入特殊標(biāo)記,然后在執(zhí)行查詢時(shí)對(duì)它們綁定數(shù)據(jù)值。這樣,API 會(huì)自動(dòng)為你從數(shù)值中轉(zhuǎn)換它們。
ref:http://blog.csdn.net/orafox/archive/2006/10/06/1322853.aspx