SQL 通配符

简介:
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 LIKE 运算符一起使用。

在 SQL 中,可使用以下通配符:

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[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%'结果集:
Id LastName FirstName Address City
2 Bush George Fifth Avenue New York

例子 2
接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE '%lond%'结果集:
Id LastName FirstName Address City
1 Adams John Oxford Street London

使用 _ 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'结果集:
Id LastName FirstName Address City
2 Bush George Fifth Avenue New York

例子 2
接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE LastName LIKE 'C_r_er'结果集:
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing

使用 [charlist] 通配符
例子 1
现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE '[ALN]%'结果集:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

例子 2
现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'结果集:
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing

一、搜索通配符字符的说明
可以搜索通配符字符。有两种方法可指定平常用作通配符的字符:

使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

在上述 LIKE 子句中,前导和结尾百分号 (%) 解释为通配符,而斜杠 (/) 之后的百分号解释为字符 %。

在方括号 ([ ]) 中只包含通配符本身。要搜索破折号 (-) 而不是用它指定搜索范围,请将破折号指定为方括号内的第一个字符:
WHERE ColumnA LIKE '9[-]5'

下表显示了括在方括号内的通配符的用法。

符号 含义
LIKE '5[%]' 5%
LIKE '5%' 5 后跟 0 个或更多字符的字符串
LIKE '[_]n' _n
LIKE '_n' an, in, on (and so on)
LIKE '[a-cdf]' a, b, c, d, or f
LIKE '[-acdf]' -, a, c, d, or f
LIKE '[ [ ]' [
LIKE ']' ]


二、实例说明:

在表PersonalMember中查找strloginname字段中含有"["的记录。


可用三条语句:
1、
select strloginname,* from PersonalMember where strloginname like '%\[%' escape '\'

2、(说明"\"与"/"均可与escape关键字结合作为转义符)
select strloginname,* from PersonalMember where strloginname like '%/[%' escape '/'

3、
select strloginname,* from dbo.PersonalMember where charindex('[',strloginname)>0



本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2011/08/12/2911924.html    ,如需转载请自行联系原作者
相关文章
|
4月前
|
SQL Oracle 关系型数据库
SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧
通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。
51 0
|
6月前
|
SQL 关系型数据库 MySQL
13SQL - SQL通配符
13SQL - SQL通配符
31 0
|
4月前
|
SQL 数据库
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符: 百分号 % 代表零个、一个或多个字符。 下划线 _ 代表一个单个字符。 以下是LIKE运算符的用法和示例:
92 0
|
SQL 数据库
SQL高级教程(1)——Top、Like、通配符、In、BETWEEN(建议收藏) 下
SQL高级教程(1)——Top、Like、通配符、In、BETWEEN(建议收藏) 下
93 0
|
SQL Oracle 关系型数据库
SQL高级教程(1)——Top、Like、通配符、In、BETWEEN(建议收藏) 上
SQL高级教程(1)——Top、Like、通配符、In、BETWEEN(建议收藏) 上
113 0
|
SQL 机器学习/深度学习 关系型数据库
【SQL刷题】Day11----SQL通配符专项练习
【SQL刷题】Day11----SQL通配符专项练习
114 0
【SQL刷题】Day11----SQL通配符专项练习
|
SQL C语言 关系型数据库
sql like 通配符 模糊查询技巧及特殊字符
最近碰到like模糊匹配的问题,找到一些答案接触迷惑,觉得有知识是自己忽略的,现在整理出来,既强化记忆,又是一次记录,以下转自一篇Blog,关于sql server like的通配符和字符带通配符的处理办法。
5533 0
|
SQL 数据库
SQL基础【十三、通配符】
SQL基础【十三、通配符】
85 0
SQL基础【十三、通配符】