SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用,=操作是没有的。
|
通配符 |
描述 |
%
替代一个或多个字符(相当于正则表达式中的 * )
_
仅替代一个字符(相当于正则表达式中的 ? )
[charlist]
字符列中的任何单一字符(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号)
[^charlist]
或者
[!charlist]
不在字符列中的任何单一字符用于排除一些字符进行匹配(这个与正则表达式中的一样)
原始的表 (用在例子中的):
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
使用 % 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE 'Ne%'
结果集:
New York
例子 2
接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '%lond%'
结果集:
London
使用 _ 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'
结果集:
New York
例子 2
接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE LastName LIKE 'C_r_er'
结果集:
使用 [charlist] 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '[ALN]%'
结果集:
New York
例子 2
现在,我们希望从上面的 "Persons" 表中选取居住的城市不以?"A" 或 "L" 或 "N" 开头的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'
结果集:
Beijing
? 通配符特殊用法:Escape
select 'asjldfj%%abc%asdfjklj' select * from testhxj where name like '%/%abc/%%' escape ''(这里表示是通配符,这样匹配的数据是包含%abc%的数据,如果不用escape,就无法将%匹配为字符串)
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!