SQL查询中的转义字符

 

如果想查找“_cs”结尾的的账户
select * from [user] where loginname like '%_cs'是不行的,_ 被认为是任意的字符,
所以需要转义字符,有两种写法:
select * from [user] where loginname like '%[_]cs'
select * from [user] where loginname like '%/_cs' escape'/'

 

 

通配符 含义
% 包含零个或更多字符的任意字符串。
_ 任何单个字符。
[ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。
[^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。

 

 
例如:

LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。


LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。


LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。


LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。


LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。


LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。


LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如 MacFeather)。
使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

 

 

符号 含义
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 ']' ]

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Adi_liu/archive/2007/12/06/1920606.aspx

 

 

二、实例说明:

在表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


 

 

 

posted @ 2009-12-30 00:16  唔愛吃蘋果  阅读(1053)  评论(0编辑  收藏  举报