SQL使用萬用字元進行過濾

2021-10-06 15:46:21 字數 1818 閱讀 5696

為什麼引入萬用字元?

之前提到的都是匹配已知值,但是對於字元來說存在侷限性,為了解決這種問題,提出了萬用字元

注意:萬用字元只能用在文字匹配上

like 『匹配字串%』 :可以用來表示所有以 匹配字串 開頭的

場景:找到所有名字以「小」開頭的學生的成績

select name,score

from students

where name like

'小%'

場景:找到所以名字結尾為「王」的學生成績**:

select name,score

from students

where name like

'%王'

注意:這裡面是要考慮大小寫的like 『匹配字元_』:找到以 匹配字元 開頭的字串,_可以替代任何乙個字元

場景:找到學生名字開頭為「小」的學生的成績

**:

select name,score

from students

where name like

'小_'

說明:請注意後面所跟的空格包括access在內的許多dbms都用空格來填補欄位的內容。例如,如果某列有50個字元,而儲存的文字為fish bean bag toy(17個字元),則為填滿該列需要在文字後附加33個空格。這樣做一般對資料及其使用沒有影響,但是可能對上述sql語句有負面影響。子句where prod_name like 'f%y』只匹配以f開頭、以y結尾的prod_name。如果值後面跟空格,則不是以y結尾,所以fish bean bag toy就不會檢索出來。簡單的解決辦法是給搜尋模式再增加乙個%號:'f%y%'還匹配y之後的字元(或空格)。更好的解決辦法是用函式去掉空格。

like 『[ ]%』:表示匹配 [ ] 中的任意乙個字元,有點or的感覺

場景:找到所有名字結尾為 明和軍 的學生的成績

**:

select name,score

from students

where name like

'%[明軍]'

場景:找到所有名字結尾不為明和軍的學生成績**:

select name,score

from students

where name like

'%[^明軍]'

正如所見,sql的萬用字元很有用。但這種功能是有代價的,即萬用字元搜尋一般比前面討論的其他搜尋要耗費更長的處理時間。這裡給出一些使用萬用字元時要記住的技巧。

總之,萬用字元是一種極其重要和有用的搜尋工具,以後我們經常會用到它。

SQL用萬用字元進行過濾

使用萬用字元必須使用like操作符。萬用字元搜尋只能用於文字字段 字串 非文字資料型別字段不能使用萬用字元搜尋。百分號 萬用字元 表示任何字元出現任意次數,代表搜尋模式中給定位置的0個 1個或者多個字元。萬用字元 不可以匹配null。下劃線 萬用字元 下劃線 的用途與 一樣,但是它只匹配單個字元,而...

SQL萬用字元過濾

單字元匹配 select from t employee where fname like erry 多字元匹配 使用下劃線可以實現 匹配長度為5 以ab開頭 剩餘字元任意 的功能,而對於 匹 配以k開頭,長度不限,剩餘字元任意 這樣的需求則無法滿足,這時就需要使用多字元匹 配了。進行多字元匹配的萬...

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...