在Oracle的查询语句select中,如果用了like查询,如
select * from TableA where Name like 'A_%'
,此时会把一些不该出现的也搜索出来了。
原因是oracle 的select 语句中 like 里的 ‘_’表示的是一个位置的占位符,%表示的是一连串位置的占位符。此时如果查询项里面自带有下划线就悲催了。
解决办法:
使用 escape() 函数
escape关键字经常用于使某些特殊字符,如通配符:’%’,’_’转义为它们原来的字符的意义,被定义的转义字符通常使用’\’,但是也可以使用其他的符号。
例如:我上面的问题可以写成
where Name like 'a\_%' escape '\'
,这个“\”可以改为其他字符
记得要在where 结束后加上
escape '\'