前面介紹的所有操作符都是針對已知值進行過濾的。不管是匹配一個還是多個值,測試大于還是小于已知值,或者檢查某個范圍的值,共同點是過濾中使用的值都是已知的。利用通配符可創建比較特定數據的搜索模式
通配符:用來匹配值的一部分的特殊字符。
搜索模式:由字面值、通配符或兩者組合構成的搜索條件。
通配符本身實際是SQL的WHERE子句中有特殊含義的字符,SQL支持幾種通配符。為在搜索子句中使用通配符,必須使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配進行比較。
百分號(%)通配符
%表示任何字符出現任意次數
-
舉例1:
輸入:SELECT * FROM Test.student s WHERE s.age like '2%'
分析:在執行這條子句時,檢索2開頭的數據
輸出:
image.png -
舉例2:
輸入:SELECT * FROM Test.student s WHERE s.name like '%王%'
分析:通配符可在搜索模式中任意位置使用,并且可以使用多個通配符,檢索姓名中包含“王”
輸出:
image.png
下劃線(_)通配符
另一個有用的通配符是下劃線(_)。下劃線的用途與%一樣,但下劃線只匹配單個字符而不是多個字符。
-
舉例3
輸入:
輸入:SELECT * FROM Test.student s WHERE s.name like '王_'
分析:匹配姓名中開頭為“王”后一個字的數據
image.png
使用通配符的技巧
正如所見,MySQL的通配符很有用。但這種功能是有代價的:通配符搜索的處理一般要比前面討論的其他搜索所花時間更長。
1.不要過度使用通配符。如果其他操作符能達到相同的目的,應該使用其他操作符。
2.在確實需要使用通配符時,除非絕對有必要,否則不要把它們用在搜索模式的開始處。把通配符置于搜索模式的開始處,搜索起來是最慢的。