数据库查询含有特殊字符

  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查询字段中含有单引号
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jamin_Ye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值