- 原因:下划线“_”在oracle中不是单纯的表示下划线的意思,而是表示通配符
比如select * from user t where t.name like 'ab\_%'
查询出来的结果是所有name以ab开头的数据 - 解决办法:使用ESCAPE关键字,语法:
ESCAPE 'escape_character'
- ESCAPE的用途为允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符
- 比如上面的语句可以改写成:
select * from user t where t.name like 'ab\_% ESCAPE '/'