设为首页 收藏本站
查看: 492|回复: 0

[经验分享] sql 转义字符

[复制链接]

尚未签到

发表于 2016-11-9 07:36:39 | 显示全部楼层 |阅读模式
SQL查询中的转义字符

分类: SQL Server 2007-12-06 13:25 5925人阅读 评论(3) 收藏 举报

如果想查找“_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 ']'

 
 
在like谓词查询中,会使用到两个通配符:"%"和"_"、,其中"%"表示零个或任意多个字符,"_"表示任意一个字符,但如果查询的条件表达式中出现了"%"和"_",就需要对其进行转义。

        另外,还有一个特殊的字符"'",若出现在查询表达式中,也需要进行转义,其转义方式和以上两个字符的转义方式有些差别。下面以示例简单说明:

        1、对"%"的转义

        select * from student where description like '%!%%' escape '!'

        本sql解释为取出表student中所有字段description中含有"%"的记录。

        2、对"_"的转义

        select * from students where description like '%!_%' escape '!'

        本sql解释为取出表student中所有字段description中含有"_"的记录。

        3、对"'"的转义

        select * from students where description like '%''%''

        本sql解释为取出表student中所有字段description中含有"'"的记录。

比较以上3条sql,不难看出,对于"%"和"_"需要指定一个转义字符,用关键字escape说明。例子中使用了'!',但你可以使用其它字符,比如字母a-z(大小写任意),或者数字0-9和其它字符等

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297690-1-1.html 上篇帖子: 备忘sql语句 下篇帖子: oralce sql 基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表