ORACLE中模糊查询时查询带下划线‘_’的记录查询结果有误

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

你可能感兴趣的:(--------数据库----,#,ORACLE)