1、LIKE操作符
概念:通配符(wildcard):用來(lái)匹配值的一部分的特殊字符。
搜索模式(search pattern):由字面值、通配符或兩者組合構(gòu)成的搜索條件。
為在搜索子句中使用通配符,必須使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配進(jìn)行比較。
2、百分號(hào)(%)通配符
最常使用的通配符是百分號(hào)(%)。在搜索串中,%表示任何字符出現(xiàn)任意次數(shù)。例如,為了找出所有以詞jet起頭的產(chǎn)品,可使用以下SELECT語(yǔ)句:
eg:select name from class LIKE 'jet%';
通配符可在搜索模式中任意位置使用,并且可以使用多個(gè)通配符。
下面的例子使用兩個(gè)通配符,它們位于模式的兩端:
eg:select name from class LIKE '%jet%';--表示尋找中間有jet的
注意:
1、重要的是要注意到,除了一個(gè)或多個(gè)字符外,%還能匹配0個(gè)字符。%代表搜索模式中給定位置的0個(gè)、1個(gè)或多個(gè)字符。
2、注意尾空格尾空格可能會(huì)干擾通配符匹配。例如,在保存詞
anvil時(shí),如果它后面有一個(gè)或多個(gè)空格,則子句WHERE
prod_name LIKE '%anvil'將不會(huì)匹配它們,因?yàn)樵谧詈蟮膌
后有多余的字符。解決這個(gè)問(wèn)題的一個(gè)簡(jiǎn)單的辦法是在搜索模
式最后附加一個(gè)%。一個(gè)更好的辦法是使用函數(shù)(第11章將會(huì)
介紹)去掉首尾空格。
3、注意NULL雖然似乎%通配符可以匹配任何東西,但有一個(gè)例
外,即NULL。即使是WHERE prod_name LIKE '%'也不能匹配
用值NULL作為產(chǎn)品名的行。
3、下劃線(_)通配符
另一個(gè)有用的通配符是下劃線(_)。下劃線的用途與%一樣,但下劃線只匹配單個(gè)字符而不是多個(gè)字符。
4、使用通配符的技巧:
正如所見(jiàn),MySQL的通配符很有用。但這種功能是有代價(jià)的:通配符搜索的處理一般要比前面討論的其他搜索所花時(shí)間更長(zhǎng)。這里給出一些使用通配符要記住的技巧。
?不要過(guò)度使用通配符。如果其他操作符能達(dá)到相同的目的,應(yīng)該使用其他操作符。
?在確實(shí)需要使用通配符時(shí),除非絕對(duì)有必要,否則不要把它們用在搜索模式的開(kāi)始處。把通配符置于搜索模式的開(kāi)始處,搜索起來(lái)是最慢的。
?仔細(xì)注意通配符的位置。如果放錯(cuò)地方,可能不會(huì)返回想要的數(shù)據(jù)