如果想在sql like裡查詢有下劃線'_'
或是'%'
等值的記錄,直接寫成like'***_xx'
,則會把'_'
當成是like的萬用字元。
sql裡提供了escape
子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,
這和c裡的'\'
很像,但是escape要求自定義乙個轉義符,而不是指定了』'字元。
-- 查出當前使用者表下所有以'yw_'開頭的表,其中第乙個'_'是轉義符,第二個是被轉義的字元
select
*from user_all_tables where table_name like
'yw__%'
escape
'_'-- 等價於
select
*from user_all_tables where table_name like
'yw\_%'
escape '\'
在方括號 ([ ]
) 中只包含萬用字元本身。要搜尋破折號 (-
) 而不是用它指定搜尋範圍,請將破折號指定為方括號內的第乙個字元:
where columna like
'9[-]5'
下表顯示了括在方括號內的萬用字元的用法。 符號
含義like
『5[%]』
5%like
『5%』
5 後跟 0 個或更多字元的字串
like
『[_]n』
_nlike
『_n』
an,in
,on
(and
soon
)
like
『[a-cdf]』
a, b, c, d,or
f
like
『[-acdf]』
-, a, c, d,or
f
like
『[ [ ]』
[like
『]』
]例如:在表personalmember中查詢strloginname欄位中含有"["的記錄
1.
select strloginname,
*from personalmember where strloginname like
' %[% '
escape
' '-- (說明"/"與"/"均可與escape關鍵字結合作為轉義符)
2.select strloginname,
*from personalmember where strloginname like
' %/[% '
escape
' / '
3.select strloginname,
*from dbo.personalmember where charindex (
' [ '
,strloginname)
>04.
select strloginname,
*from dbo.personalmember where strloginname like
' %[% '
SQL語句like子句中的轉義符
如果想在sql like裡查詢有下劃線 或是 等值的記錄,直接寫成like xx 則會把 當成是like的萬用字元。sql裡提供了 escape子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,這和c裡的 很像,但是escape要求自定義乙個轉...
SQL語句like子句中的轉義符
如果想在sql like裡查詢有下劃線 或是 等值的記錄,直接寫成like xx 則會把 當成是like的萬用字元。sql裡提供了 escape子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,這和c裡的 很像,但是escape要求自定義乙個轉...
SQL語句like子句中的轉義符
如果想在sql like裡查詢有下劃線 或是 等值的記錄,直接寫成like xx 則會把 當成是like的萬用字元。sql裡提供了 escape子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,這和c裡的 很像,但是escape要求自定義乙個轉...