这是第一篇关于技术的。
干这行一年了 ,以前就是懒 不爱学习,工作中用不到的。。基本都不怎么会
现在开始 一点一点记录自己的成长吧
随意的一张表里做一次 select * from like 的查询,举个例子吧。
user表里 username字段有 三行数据
uesename
'ABCDEF'
'_BCDEF'
'CBCDEF'
要求模糊查询出 _BC的username值
select * from uesr where username like ‘_BC’ 查询出来的结果并不理想
因为在条件里的_BC被oracle当做了通配符
(LIKE 字句中 有两个通配符,"%"代替一个或者多个字符,“_"代替一个或者多个字符)
所以查询出的数据 是会把上述三条数据都会查询出
那这里 “_” 下划线被当做了通配符,
可以使用“\”转义字符
所以这样写
select * from uesr where username like ‘\_BC’ escape '\';
就可以查询出想要的数据了
ESCAPE 把“\”标识为转义字符,而"\"把"_"转义为字符,而非其原意(通配符)。
那如果 上列的第二条数据时这样的呢?
"_\BCDEFG"
如果还是按照上述的查询
会出现转衣服之后字符确实或非法的错(这个自己实现就好)
做开发时间长了之后就会知道 双写转义字符就可以实现了
select * from uesr where username like ‘_\\BC’ escape '\';
字符串出现"%" 按上面的处理方法就可以实现!