LIKE查询中特殊字符的特殊处理

SQL语句中,我们可以在WHERE子句里使用LIKE来达到模糊查询的目的。
 
LIKE子句支持的通配符如下:
  • %:零或者多个字符
  • _:单一任何字符(下划线)
  • \:特殊字符
  • []:在某一范围内的字符,如[0-9]或者[aeiou] 
  • [^]:不在某范围内的字符,如[^0-9]或者[^aeiou]
不过,在某些情况下,我们可能有查询CHAR或VARCHAR中的“%”或“_”字符的需求,为达到这类目标,我们需要使用ESCAPE子句。
 
ESCAPE子句规定ESCAPE字符,如果ESCAPE字符出现在" % "或" _ "字符之前,Oracle会把通常意义中的通配符解释成为它原来的意义,而不是作为一种特殊的模式匹配。
 
ESCAPE子句的用法如下。
 
场景:如果我们想在employees表中搜索'A_B'模式的用户:
 
SELECT last_name
 FROM employees
 WHERE last_name LIKE '%A\_B%' ESCAPE '\';
 
ESCAPE子句定义了反斜杠(\)为转义字符。
 
在本例中,转义字符转义了‘_’,这使得Oracle按照‘_’的本义来翻译它,而不是把它当成通配符。




转载于:https://www.cnblogs.com/heart-runner/archive/2011/11/28/2266046.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值