1.like
操作符萬用字元:用來匹配值的一部分的特殊字元。實際上是
sql的
where
子句中含有特殊含義的字元,在搜尋子句中使用萬用字元,必須使用
like
操作符指示
dbms
,後跟的搜尋模式利用萬用字元匹配而不是簡單的相等匹配進行比較。
搜尋模式:由字面值、萬用字元或者兩者組合構成的搜尋條件。
謂詞:like
是謂詞而不是操作符。操作法作為謂詞時不是操作符。
萬用字元搜尋只能用於文字字段(字串),不能用於非文字資料型別字段。
(1)百分號(
%)萬用字元
%表示任何字元出現任意次數,表示搜尋模式中給定位置的0個、
1個或多個字元,是最常用的萬用字元。
輸入:select prod_id, prod_name
from products
where prod_name like 'fish%';
輸出:
搜尋模式為
'fish%'
,檢索任意
fish
開頭的詞。根據
dbms
的不同及其配置,搜尋可以區分大小寫,不過這裡使用的
mysql
沒有區分。
萬用字元可以在搜尋模式的任意位置使用,並且可以使用多個萬用字元。
下面使用兩個位於模式兩端的萬用字元,輸入:
select prod_id, prod_name
from products
where prod_name like '%bean bag%';
輸出:搜尋模式
'%bean bag%'
表示匹配任何位置上包含文字
bean bag
的值,不管它之前或之後出現什麼字元。
萬用字元也可以出現在搜尋模式的中間,下面找出以
f開頭,以
y結尾的所有產品,輸入:
select prod_name
from products
where prod_name like 'f%y';
輸出:
注意,萬用字元
%不能匹配
null
。子句where prod_name like '%'
不會匹配產品名次為
null
的行。(2)
下劃線(
_)萬用字元
只能匹配單個字元。
輸入:select prod_id, prod_name
from products
where prod_name like '__ inch teddy bear';
輸出:
該搜尋模式只能匹配兩個萬用字元。下面的
select
語句使用
%萬用字元,返回三行產品,輸入:
select prod_id, prod_name
from products
where prod_name like '% inch teddy bear';
輸出:
(3)方括號(
)萬用字元
用來指定乙個字符集,必須匹配指定位置的乙個字元。
注意:mysql
不支援集合,因此以下檢索不附上執行結果。
為了找出所有名字以j或
m開頭的聯絡人,可輸入:
select cust_contact
from customers
where cust_contact like '[jm]%'
order by cust_contact;
此萬用字元可以用字首字元
^(脫字型大小)來否定,優點是使用多個
where
子句時可以簡化語法。
輸入:select cust_contact
from customers
where cust_contact like '[^jm]%'
order by cust_contact;
也可以使用
not操作符來否定,輸入:
select cust_contact
from customers
where not cust_contact like '[jm]%'
order by cust_contact;
2.使用萬用字元的技巧
(1)不要過度使用萬用字元。若有操作符能達到相同目的,應該使用操作符。
(2)確實需要萬用字元時,盡量不要放在搜尋模式的開始處,這樣搜尋速度很慢。
(3)仔細注意萬用字元的位置。
MySQL用萬用字元進行過濾
萬用字元 用來匹配值的一部分的特殊字元 搜尋模式 由字面值 萬用字元或者兩者組合成的搜尋條件 在搜尋字句中使用萬用字元,必須使用like操作符,like操作符指示mysql後跟的搜尋模式是萬用字元匹配而不是直接相等匹配。百分號 萬用字元 表示任何字串出現任意次數 1萬用字元位於搜尋模式最後 sele...
SQL用萬用字元進行過濾
使用萬用字元必須使用like操作符。萬用字元搜尋只能用於文字字段 字串 非文字資料型別字段不能使用萬用字元搜尋。百分號 萬用字元 表示任何字元出現任意次數,代表搜尋模式中給定位置的0個 1個或者多個字元。萬用字元 不可以匹配null。下劃線 萬用字元 下劃線 的用途與 一樣,但是它只匹配單個字元,而...
5 用萬用字元進行過濾
使用萬用字元以及使用like操作符進行通配搜尋,以便對資料進行複雜過濾。一 like操作符 1.1 百分號 萬用字元 最常用的萬用字元是百分號,在搜尋串中,表示任意字元出現任意次數。select vend id,prod price,prod name from products where pro...