SQL萬用字元過濾

2021-06-23 08:57:31 字數 1173 閱讀 3222

單字元匹配:

select * from t_employee

where fname like '_erry'

多字元匹配 

使用下劃線可以實現「匹配長度為5、以ab開頭、剩餘字元任意」的功能,而對於「匹

配以k開頭,長度不限,剩餘字元任意」這樣的需求則無法滿足,這時就需要使用多字元匹

配了。進行多字元匹配的萬用字元為半形百分號「%」,它匹配任意次數(零或多個)出現的

任意字元。比如萬用字元表示式「k%」匹配以「k」開頭、任意長度的字串,「k」、「kerry」、

「kb」  都能匹配這個表示式,而「ark」、「luck」、「3kd」等則不能匹配這個表示式;配符表

達式「b%t」匹配以「b」開頭、以「t」結尾、任意長度的字串,「but」、「bt」、「belt」  都

能匹配這個表示式,而「turbo」、「tube」、「tb」等則不能匹配這個表示式

select * from t_employee  

where fname like 't%' 

集合匹配 

集合匹配只在mssqlserver上提供支援,在mysql、oracle、db2等資料庫中不支援,

必須採用變通的手段來實現。 

進行集合匹配的萬用字元為「」,方括號中包含乙個字符集,它匹配與字符集中任意一

個字元相匹配的字元。比如萬用字元表示式「[bt]%」匹配第乙個字元為b或者t、長度不限的

字串,「bed」、「token」、「t」都能匹配這個表示式,而「at」、「lab」、「lot」等則不能匹配

這個表示式。

select * from t_employee  

where fname like '[sj]%' 

還可以使用否定符「^」來對集合取反,它匹配不與字符集中任意乙個字元相匹配的字

符。比如萬用字元表示式「[^bt]%」匹配第乙個字元不為b或者t、長度不限的字串,「at」、

「lab」、「lot」都能匹配這個表示式,而  「bed」、「token」、「t」等則不能匹配這個表示式。 

select * from t_employee  

where fname like '[^sj]%' 

select * from t_employee  

where not(fname like 's%') and not(fname like 'j%')

SQL萬用字元過濾

百分號 萬用字元 select prod id prod name from products where prod name like jet select prod id prod name from products where prod name like anvi1 select prod...

SQL之萬用字元過濾

萬用字元本是實際是sql的where子句中有特殊含義的字元,sql支援幾種萬用字元。為了在搜尋子句裡使用萬用字元,必須使用like操作符。表示出現任意次數的任意字元 找出fish開頭的產品。select prod id,prod name from products where prod name ...

sql裡的萬用字元過濾

首先,只要用萬用字元,就要用 like 萬用字元主要有三種 1.單字元匹配 用半形的下劃線匹配單個出現的字元 如,以任意字元開頭 以 erry 結尾的人 select from t people where name like erry 2.多字元匹配 用半形的百分號來匹配任意字元 乙個或多個 如,...