数据库查询含有特殊字符

  1. 当前数据
  2. 查询已a_开头的name,SELECT * FROMtestwhere name like 'a_%',表面看 是没有问题的,输出结果却是已a开头的数据
  3. 针对这种含有特殊字符的查询,我们需要转义一下
  4. 解决
    1. String name="a_";
      name = name.replaceAll("_", "\\\\_");
      sql.append(" and name like '%"+name+"%' ");
      
    2. String name="a_";
      name = name.replaceAll("_", "/_");
      sql.append(" and name like '%"+name+"%' escape '/'");
      
  5. 对于oracle
    1. 使用转义符号select * from liketesttable where forms like 'hello/_%' escape '/'
    2. select * from liketesttable where regexp_like(forms,'hello[_]')
    3. select * from liketesttable where forms like 'hello'||chr(37)||'%'单引号chr(39),双引号(34)其他符号可以通过select ascii('_') from dual;查询到,此方法不适用查询’%’
  6. mysql已知需要转义特殊符号',\,%,_,oracle已知需要转义特殊符号在mysql的基础上还有’&’,这个符号在查询是可以正常查询,但插入是直接插入是插入不进入的
  7. 参考:
    1. 【模糊查询】oracle中带有特殊符号的模糊查询
    2. mysql查询条件包含下划线等特殊字符
    3. oracle查询字段中含有单引号
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页