sql處理特殊字元

2021-08-30 01:13:05 字數 716 閱讀 7637

我們都知道sql server查詢過程中,單引號「'」是特殊字元,所以在查詢的時候要轉換成雙單引號「''」。

但這只是特殊字元的乙個,在實際專案中,發現對於like操作還有以下特殊字元:下劃線「_」,百分號「%」,方括號「」以及尖號「^」。

其用途如下:

下劃線:用於代替乙個任意字元(相當於正規表示式中的 ? )

百分號:用於代替任意數目的任意字元(相當於正規表示式中的 * )

方括號:用於轉義(事實上只有左方括號用於轉義,右方括號使用最近優先原則匹配最近的左方括號)

尖號:用於排除一些字元進行匹配(這個與正規表示式中的一樣)

以下是一些匹配的舉例,需要說明的是,只有like操作才有這些特殊字元,=操作是沒有的。

a_b... a[_]b%

a%b... a[%]b%

a[b... a[b%

a]b... a]b%

ab... ab%

a[^]b... a[[^]]b%

a[^^]b... a[[^][^]]b%

在實際進行處理的時候,對於=操作,我們一般只需要如此替換:

' -> ''

對於like操作,需要進行以下替換(注意順序也很重要)

[ -> [ (這個必須是第乙個替換的!!)

% -> [%] (這裡%是指希望匹配的字元本身包括的%而不是專門用於匹配的萬用字元)

_ -> [_]

^ -> [^]

sql處理特殊字元

我們都知道sql server查詢過程中,單引號 是特殊字元,所以在查詢的時候要轉換成雙單引號 但這只是特殊字元的乙個,在實際專案中,發現對於like操作還有以下特殊字元 下劃線 百分號 方括號 以及尖號 其用途如下 下劃線 用於代替乙個任意字元 相當於正規表示式中的 百分號 用於代替任意數目的任意...

SQL特殊字元處理

使用者輸入如果沒有任何限制的話,則必須對特殊字元進行變換。如果對單引號不進行變換,則會發生資料庫錯誤,甚至可能導致系統崩潰。不過迴避方法卻非常簡單,只要將單引號 轉換成兩個單引號 就可以了。例 select from tbl where col abc def 模糊查詢的語句雖然不會發生sql錯誤,...

SQL 中的特殊字元 處理

update userinfo set pageurl myjsp?page 1 color red b b color pagesize 10 where id test 怎麼處理上例中的特殊字元?兩個辦法 1 update userinfo set pageurl myjsp?page 1 co...