LIKE
LIKE 是另一个在 WHERE 子句中会用到的指令。基本上, LIKE 能让我们依据一个模式
(pattern) 来找出我们要的资料。相对来说,在运用 IN 的时候,我们完全地知道我们需要的
条件;在运用 BETWEEN的时候,我们则是列出一个范围。 LIKE的语法如下:
SELECT "栏目名" FROM "表格名" WHERE "栏位名" LIKE {模式}
模式} 经常包括野卡 (wildcard). 以下是几个例子:
'A_Z': 所有以 'A'起头,另一个任何值的字原,且以 'Z'为结尾的字符串。 'ABZ' 和 'A2Z'
都符合这一个模式,而 'AKKZ' 并不符合 (因为在 A 和 Z 之间有两个字原,而不是一个
字原)。
'ABC%': 所有以 'ABC'起头的字符串。举例来说,'ABCD'和 'ABCABC' 都符合这个模式。
'%XYZ': 所有以 'XYZ'结尾的字符串。举例来说,'WXYZ'和 'ZZXYZ' 都符合这个模式。
'%AN%': 所有含有 'AN' 这个模式的字符串。举例来说, 'LOS ANGELES' 和 'SAN
FRANCISCO' 都符合这个模式。
我们将以上最后一个例子用在我们的 Store_Information 表格上:
Store_Information 表格
键入:SELECT * FROM Store_Infoemation WHERE store_name like '%AN'
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SQL LIKE 操作符语法
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
原始的表 (用在例子中的):
Persons 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
LIKE 操作符实例
例子 1
现在,我们希望从上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons //SELECT * FROM Persons WHERE City LIKE 'N%' 城市中以N开头的。 WHERE City LIKE 'N%'
提示:"%" 可用于定义通配符(模式中缺少的字母)。
结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Bush | George | Fifth Avenue | New York |
例子 2
接下来,我们希望从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons //SELECT FROM Persons WHERE City LIKE '%g' 城市中以g结尾的。 WHERE City LIKE '%g'
结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
3 | Carter | Thomas | Changan Street | Beijing |
例子 3
接下来,我们希望从 "Persons" 表中选取居住在包含 "lon" 的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons //SELECT * FROM Persons WHERE City LIKE '%lon%' 居住在含lon城市的人 WHERE City LIKE '%lon%'
结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
例子 4
通过使用 NOT 关键字,我们可以从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons //SELECT * FROM Persons WHERE City NOT LIKE '%lon%' WHERE City NOT LIKE '%lon%'
结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |