SqlServer中模糊查询对于特殊字符的处理

来源:互联网 发布:数据库基础知识题库 编辑:程序博客网 时间:2024/05/18 17:26

今天在处理sql查询的时候遇到了like查询不到的问题,于是对问题进行剖析



问题:

  select * from v_workflow_rt_task_circulate where Name like '%[admin]请假申请[2017-02-13至2017-02-13]%'


查询不到,但是在数据库中是存在在这一条数据的。


修改后:

  select * from v_workflow_rt_task_circulate where Name like '%[[]admin]请假申请[[]2017-02-13至2017-02-13]%'


对于模糊查询需要对于特殊字符的处理(下划线_,百分号%,方括号[,尖号^)


对了以上的字符直接使用方括号包起来([])例如:[_]、[%]、[[]、[^]。

/** * 模糊查询需要对于特殊字符的处理(下划线_,百分号%,方括号[],尖号^) * @param Name * @return */private String handleName(String name){if(StringUtils.isEmpty(name)){return null;}return name.replace("_", "[_]").replace("%", "[%]").replace("[", "[{]").replace("^", "[^]");}


0 0
原创粉丝点击