Oracle的LIKE查询中除%匹配任意字符外,匹配单个字符的通配符是什么?
Oracle LIKE 语法单字符通配符解答
Oracle的LIKE模糊查询中,是有专门匹配单个任意字符的通配符的,就是下划线 _。
你已知的%通配符作用是匹配对应位置0个及以上任意长度的任意字符,而_会严格匹配对应位置的1个任意字符,完全匹配你描述的使用需求。
对应场景用法示例
- 匹配长度为2、以1结尾的id值时,将你示例中的占位符
~替换为_即可:
Select * from table where id like '_1'
运行后只会返回长度为2、尾字符为1的结果,例如91、x1、X1都会被命中,像XX1这类长度为3的内容不会被匹配。
- 匹配长度为4、以1结尾的id值时,对应写3个
_即可:
Select * from table where id like '___1'
运行后只会返回长度为4、尾字符为1的结果,例如xxx1、9991、8881都会被命中,长度不符合的内容不会被匹配。
使用注意
如果待匹配的字符串本身包含_或者%这类通配符,需要通过ESCAPE关键字指定转义符做转义处理,避免被识别为通配符。例如要匹配所有以_1结尾的内容,可以参考如下写法:
-- 指定\作为转义符,\_ 会被识别为普通下划线字符,而非通配符 Select * from table where id like '%\_1' ESCAPE '\'
内容的提问来源于stack exchange,提问作者Erik
相关产品推荐
相关产品推荐

