SQL語句like子句中的轉義符

2021-10-10 22:03:08 字數 1780 閱讀 6765

如果想在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(andsoon)

like『[a-cdf]』

a, b, c, d,orf

like『[-acdf]』

-, a, c, d,orf

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要求自定義乙個轉...