mysql中使用通配符進(jìn)行過(guò)濾圖文說(shuō)明教程
發(fā)表時(shí)間:2023-08-30 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]什么是通配符?通配符就是用來(lái)匹配值的一部分的特殊字符。搜索模式:由字面值、通配符或者兩者組合構(gòu)成的搜索條件。1.like操作符:前面介紹的所有操作符都是針對(duì)一直值進(jìn)行過(guò)濾的。不管是匹配還是多個(gè)值,測(cè)試大于還是小于已知值,或者檢查某個(gè)范圍的值,共同點(diǎn)是過(guò)濾中使用的值都是已知的。但是,這種過(guò)濾方法并不...
什么是通配符?通配符就是用來(lái)匹配值的一部分的特殊字符。
搜索模式:由字面值、通配符或者兩者組合構(gòu)成的搜索條件。
1.like操作符:
前面介紹的所有操作符都是針對(duì)一直值進(jìn)行過(guò)濾的。不管是匹配還是多個(gè)值,測(cè)試大于還是小于已知值,或者檢查某個(gè)范圍的值,共同點(diǎn)是過(guò)濾中使用的值都是已知的。但是,這種過(guò)濾方法并不是任何時(shí)候都好用,例如,怎樣搜索產(chǎn)品名中包含文本anvil的所有產(chǎn)品?用簡(jiǎn)單的比較操作符坑定不行,必須使用通配符。利用通配符可創(chuàng)建比較特定數(shù)據(jù)搜索模式。在這個(gè)例子中,如果你想找出名稱包含anvil的所有產(chǎn)品,可構(gòu)造一個(gè)通配符搜索模式,找出產(chǎn)品名中任何位置出現(xiàn)anvik的產(chǎn)品。
為在搜索子句中使用通配符,必須使用link操作符。like指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配進(jìn)行比較。
2.百分號(hào)(%)通配符
最常使用的通配符是百分號(hào)(%)。在搜索串中,%表示任何字符出現(xiàn)的任意次數(shù)。例如,為了找出所有以詞a開(kāi)頭的產(chǎn)品,可以使用以下select語(yǔ)句:
select prod_id,prod_name from products where prod_name like 'a%';
此例子使用了搜索模式'a%'。在執(zhí)行這條句子時(shí),講檢索任意以a開(kāi)頭的詞。%告訴MySQL接受a之后的任意字符,不管它有多少字符。
注意:根據(jù)MySQL的配置方式,搜索可以使區(qū)分大小寫(xiě)的。如果區(qū)分大小寫(xiě),‘a(chǎn)%’與Apache這個(gè)詞不相匹配。
通配符可在搜索模式中任意位置使用,并且可以使用多個(gè)通配符。下面例子使用兩個(gè)通配符,它們位于模式的兩端:
select prod_id,prod_name from products where prod_name like '%a%';
代碼分析:搜索模式'%a%'表示匹配任何位置包含文本anvil的值,而不論它之前或之后出現(xiàn)什么字符。
通配符也可以出現(xiàn)在搜索模式中間。比如下面這個(gè)示例:
select prod_namefrom products where prod_name like '%a%';
重要的是要注意到,除了一個(gè)或多個(gè)字符外,%還能匹配0個(gè)字符。%代表搜索模式中給定位置的0個(gè)、1個(gè)或多個(gè)字符。
注意:1.為空格可能會(huì)干擾通配符匹配。比如在 '%a%'的a后面有一個(gè)或多個(gè)空格時(shí),則子句where prod_name like '%a%';將不會(huì)匹配它們,因?yàn)樵赼后有多余字符。解決這個(gè)問(wèn)題的一個(gè)簡(jiǎn)單的辦法是在搜索模式最后加一個(gè)%。另一個(gè)更好的辦法是用函數(shù)將收尾空格去除。
2.雖然似乎%通配符可以匹配任何東西,但是有一個(gè)例外,即NULL。即使where prod_name like ‘%’也不能匹配用值NULL作為產(chǎn)品名的行。
3.下劃線‘_’通配符
另一個(gè)有用的通配符是下滑線(_)。下劃線的用途與%一樣,但下劃線之匹配單個(gè)字符而不是多個(gè)字符。
舉個(gè)例子:
select prod_id,prod_name from products where products where prod_name like '_ ton anvil';
輸出:
此where子句中的搜索模式給出了后面跟有文本的兩個(gè)通配符。結(jié)果只顯示匹配搜索模式的行:第一行中下環(huán)線匹配1,第二行中下劃線匹配2.
大家可以再試試用%進(jìn)行匹配返回的結(jié)果,對(duì)比一下。
以上就是mysql中使用通配符進(jìn)行過(guò)濾教程的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。