通配符是用來匹配值的一部分的特殊字符,實(shí)際是SQL中的WHERE子句中有特殊含義的字符。
通配符:%
SELECT prod_id
FROM products
WHERE product_id LIKE 'AC%'
找出所有ID以AC開頭的產(chǎn)品,%表示任意字符出現(xiàn)任意次數(shù)。
相當(dāng)于你告訴SQL,幫我找到“AC+!@#¥%……” !
“@#¥%”可以是任何東西。
同理:
WHERE prod_id LIKE '%AC%',代表AC可以出現(xiàn)在任何位置,只要出現(xiàn)了AC就匹配。
WHERE prod_id LIKE 'A%C', 代表匹配以A開頭,以C結(jié)尾的ID
通配符:_
_和%很相似,但是_只匹配單個(gè)字符,而%匹配任意個(gè)數(shù)的字符。
WHERE prod_id LIKE '_AC'
WHERE prod_id LIKE '__AC'
第一句用了一個(gè)下劃線,第二個(gè)用了2個(gè)下劃線。想想?yún)^(qū)別是什么?
答案: AC前只出現(xiàn)一個(gè)字符和出現(xiàn)兩個(gè)字符的區(qū)別
通配符:[ ](方括號(hào))
[ ]用于指定字符集,必須匹配指定位置的一個(gè)字符
WHERE prod_id LIKE '[AC]%'
匹配A或者C(方括號(hào)中的任一字符)開頭的ID
WHERE prod_id LIKE '[^AC]%'
^是脫字符,代表匹配A和C(方括號(hào)中的任一字符)以外的字母開頭的ID。(既不能是A,也不能是C)
注意事項(xiàng):
通配符搜索往往要更加長的處理時(shí)間,不要濫用。此外,通配符的使用位置會(huì)對(duì)搜索結(jié)果造成影響,因此需要注意。