sql 通配符实例分享

发布时间:2020-04-25编辑:脚本学堂
本文介绍了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" 或 "o" 或 "f" 开头的人:
select 语句:
 

复制代码 代码示例:
select * from persons where city like '[aof]%' 结果集:
id lastname firstname address city
1 adams john oxford street london
2 bush george fifth avenue new york

例子 2
从上面的 "persons" 表中选取居住的城市不以 "a" 或 "o" 或 "f" 开头的人:
可以使用下面的 select 语句:
 

复制代码 代码示例:
select * from persons where city like '[!aof]%' 结果集:
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字段中含有"["的记录。

可用三条sql语句
 

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