1. 程式人生 > 其它 >SQLServer查詢特殊符號處理

SQLServer查詢特殊符號處理

GPS平臺、網站建設、軟體開發、系統運維,找森大網路科技!
https://cnsendnet.taobao.com
來自森大科技官方部落格
http://www.cnsendblog.com/index.php/?p=1859

SQL Server查詢過程中,單引號“'”是特殊字元,所以在查詢的時候要轉換成雙單引號“''”。

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

其用途如下:

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

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

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

尖號:用於排除一些字元進行匹配(這個與正則表示式中的一樣)以下是一些匹配的舉例,需要說明的是,只有like操作才有這些特殊字元,=操作是沒有的。

a_b... a[_]b%

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

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

a]b... a]b%

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

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

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

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

' -> ''

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

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

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

_ -> [_]

^ -> [^]

GPS平臺、網站建設、軟體開發、系統運維,找森大網路科技!
https://cnsendnet.taobao.com
來自森大科技官方部落格
http://www.cnsendblog.com/index.php/?p=1859