mysql shell 轉義 MySql字元轉義

2021-10-18 20:49:26 字數 1657 閱讀 7493

在字串中,某些序列具有特殊含義。這些序列均用反斜線(『\』)開始,即所謂的轉義字元。mysql識別下面的轉義序列:

\0ascii 0(nul)字元。

單引號(『'』)。

雙引號(『"』)。

\b退格符。

\n換行符。

\r回車符。

\ttab字元。

\zascii 26(控制(ctrl)-z)。該字元可以編碼為『\z』,以允許你解決在windows中ascii 26代表檔案結尾這一問題。(如果你試圖使用mysql db_name < file_name,ascii 26會帶來問題)。

反斜線(『\』)字元。

『%』字元。參見表後面的註解。

『_』字元。參見表後面的註解。

這些序列對大小寫敏感。例如,『\b』解釋為退格,但『\b』解釋為『b』。

在其它轉義序列中,反斜線被忽略。也就是說,轉義字元解釋為彷彿沒有轉義。

有幾種方式可以在字串中包括引號:

·         在字串內用『'』引用的『'』可以寫成『''』。

·         在字串內用『"』引用的『"』可以寫成『""』。

·         可以在引號前加轉義字元(『\』)。

·         在字串內用『"』引用的『'』不需要特殊處理,不需要用雙字元或轉義。同樣,在字串內用『'』引用的『"』也不需要特殊處理。

下面的select語句顯示了引用和轉義如何工作:

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

isfour

lines |

如果你想要在字串列內插入二進位制資料(例如blob),必須通過轉義序列表示下面的字元:

nulnul位元組(ascii 0)。用『\0』表示該字元(反斜線後面跟乙個ascii『0』字元)。

反斜線(ascii 92)。用『\\』表示該字元。

單引號(ascii 39)。用『\'』表示該字元。

雙引號(ascii 34)。用『\"』表示該字元。

當編寫應用程式時,在包含這些特殊字元的字串用於傳送到mysql伺服器的sql語句中的資料值之前,必須對它們正確進行轉義。可以用兩種方法來完成:

·         用轉義特殊字元的函式處理字串。例如,在c程式中,可以使用mysql_real_escape_string() c api函式來轉義字元。參見25.2.3.52節,「mysql_real_escape_string()」。perl dbi介面提供乙個quote方法來將特殊字元轉換為正確的轉義序列。參見25.4節,「mysql perl api」。

·         顯式轉義特殊字元,許多mysql api提供了佔位符功能,允許你在查詢字串中插入特殊標記,然後當你發出查詢時將資料值同它們繫結起來。在這種情況下,api關注轉義值中的特殊字元。

MySQL Shell實用匯入程式

mysql shell的匯入程式util.loaddump url options 在mysql shell 8.0.21中引入,支援匯入mysql並行匯入資料 進度狀態跟蹤 恢復和重置功能。備註 匯入工具使用的是load data local infile語法,所以需要設定local infile...

shell了解MySQL shell操作mysql

首先安裝mysql,yum install mysql 在做一些日常的運維工作的時候,經常需要些一些shell指令碼進行裝置效能以及其它引數的監控。在過去的一年工作中,接觸到的比較多的是對資料庫中某些資訊的監控。於是就想到了用shell mysql crontab進行實現。下面附上通過shell命令...

轉義與反轉義

span 內容會作為html 解析,其他資料沒問題,url 就不行了,url 中的 會被解釋成 amp 而上傳到伺服器,用自定義標籤即可 link style display none link document.getelementbyid link value document.geteleme...