mysql 通配符(sql 高級(jí)過(guò)濾)
首先簡(jiǎn)單介紹一下通配符,用來(lái)匹配值的一部分的特殊字符。
搜索模式(search pattern) 由字面值、通配符或兩者組合構(gòu)成的搜索條件。
通配符是對(duì)操作符的一種補(bǔ)充,操作符都確認(rèn)的,而通配符屬于模糊的。
下面介紹幾個(gè)例子:
% 通配符:
SELECT * FROM products WHERE products.prod_name LIKE 'jet%'
這個(gè)%表示前面的任意字符出現(xiàn)任意次數(shù)。
此例子使用了搜索模式'jet%'。在執(zhí)行這條子句時(shí),將檢索任意以jet起頭的詞。%告訴MySQL接受jet之后的任意字符,不管它有多少字符。
區(qū)分大小寫(xiě) 根據(jù)MySQL的配置方式,搜索可以是區(qū)分大小
寫(xiě)的。如果區(qū)分大小寫(xiě),'jet%'與JetPack 1000將不匹配。
再來(lái)看一個(gè)%例子的賬戶:
SELECT * FROM products WHERE products.prod_name LIKE '%anvil%'
上面表示只要包含anvil字符的prod name 將會(huì)被匹配。
同樣,再舉一個(gè)例子:
SELECT * FROM products WHERE products.prod_name LIKE 's%e'
這個(gè)表示以s開(kāi)頭以e結(jié)尾的全部的prod name 將會(huì)被匹配。
重要的是要注意到,除了一個(gè)或多個(gè)字符外,%還能匹配0個(gè)字符。%
代表搜索模式中給定位置的0個(gè)、1個(gè)或多個(gè)字符。
注意尾空格 尾空格可能會(huì)干擾通配符匹配。例如,在保存詞anvil 時(shí),如果它后面有一個(gè)或多個(gè)空格,則子句WHEREprod_name LIKE '%anvil'將不會(huì)匹配它們,因?yàn)樵谧詈蟮膌
后有多余的字符。解決這個(gè)問(wèn)題的一個(gè)簡(jiǎn)單的辦法是在搜索模
式最后附加一個(gè)%。
注意:
NULL雖然似乎%通配符可以匹配任何東西,但有一個(gè)例
外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配
用值NULL作為產(chǎn)品名的行。
另一個(gè)有用的通配符是下劃線(_)。下劃線的用途與%一樣,但下劃
線只匹配單個(gè)字符而不是多個(gè)字符。
SELECT * FROM products WHERE products.prod_name LIKE '_ ton anvil'
上面這個(gè)_表示的就是任意字符。
與%能匹配0個(gè)字符不一樣,_總是匹配一個(gè)字符,不能多也不能少。
正如所見(jiàn),MySQL的通配符很有用。但這種功能是有代價(jià)的:通配
符搜索的處理一般要比前面討論的其他搜索所花時(shí)間更長(zhǎng)。這里給出一
些使用通配符要記住的技巧。
不要過(guò)度使用通配符。如果其他操作符能達(dá)到相同的目的,應(yīng)該
使用其他操作符。
在確實(shí)需要使用通配符時(shí),除非絕對(duì)有必要,否則不要把它們用
在搜索模式的開(kāi)始處。把通配符置于搜索模式的開(kāi)始處,搜索起
來(lái)是最慢的。
到此這篇關(guān)于mysql 通配符(sql 高級(jí)過(guò)濾)的文章就介紹到這了,更多相關(guān)mysql 通配符內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信