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

今天在处理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("^", "[^]"); }

以上所述是小编给大家介绍的SqlServer中模糊查询对于特殊字符的处理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-19 23:55:42

SqlServer中模糊查询对于特殊字符的处理方法的相关文章

ASP在ACCESS中模糊查询"内存溢出"的解决方法

今天在日常维护一个网站时,发现该网站的留言程序没有经过严格的验证过滤,导致了将近十万条垃圾数据.而其中又不乏重要信息,需要清理数据,以及增加更为严格的验证措施. 而通过在数据库中直接删除又不太科学,会误删很多重要信息. 通过 模糊查询语句: 复制代码 代码如下:select * from Feedback where Comments like '%http%' 结果:"内存溢出" 经过不断的搜索,找出了问题的主要原因: asp 中用 LIKE 关键字查询日文符号就会出错,比如说Chr

mysql中模糊查询的四种用法介绍_Mysql

下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为"张三","张猫三"."三脚猫","唐三藏"等等有"三"的记录全找出来. 另外,如果需要找出u_name中既有"三"又有

mysql中模糊查询的四种用法介绍

下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为"张三","张猫三"."三脚猫","唐三藏"等等有"三"的记录全找出来. 另外,如果需要找出u_name中既有"三"又有

jsp问题-jsp中模糊查询,后台没有出错,为什么实现不了?

问题描述 jsp中模糊查询,后台没有出错,为什么实现不了? 点击查找只是刷新页面,后台没有问题,但是又实现不了 具体代码: <% request.setCharacterEncoding("utf-8"); %> <%! private static final String DBDRIVER ="org.gjt.mm.mysql.Driver"; private static final String DBURL ="jdbc:mysq

SQLSERVER中XML查询:FORXML指定RAW

SQL SERVER中XML查询:FOR XML指定RAW 前言 在SQL SERVER中,XML查询可以指定RAW,AUTO,EXPLICIT,PATH.本文用一些实例介绍SQL SERVER中指定RAW的XML查询. 基础FOR XML查询 看实例: with TestXml as ( select 1 as id,'LeeWhoeeUniversity' as name union all select 2,'SQLSERVER中XML查询' union all select 3 ,'FO

为什么sql中模糊查询左百分号 无法用索引

问题描述 为什么sql中模糊查询左百分号 无法用索引 为什么sql中模糊查询左百分号 无法用索引,右百分号 却可以用索引? 解决方案 sql 中模糊查询转义 escape 解决方案二: 数据库一般都是前缀索引,所以支持模糊匹配在后面

字符-php中模糊查询出现查询不匹配

问题描述 php中模糊查询出现查询不匹配 模糊查询,查询出来的结果跟输入的字符不一样.我昨天查询'生',出现结果有俩个'生产部'.'销售部'.查询我用的是 like '%字符%'.哪位可以帮忙解决.谢谢. 解决方案 销售部也能查询出来?你确认你显示的字段和你查询的字段同一个?还是查询的另外一个字段,显示的和查询字段不一样什么的 解决方案二: $sql=""select R_AddressR_NoR_IDR_DescR_Status from A_Repository where R_A

link中如何根据checkbox的值在多个属性中模糊查询?

问题描述 link中如何根据checkbox的值在多个属性中模糊查询? link中如何根据checkbox的值在多个属性中模糊查询? 解决方案 参考: http://blog.csdn.net/q107770540/article/details/5724013 public void Test(string a, string b, string c,string d) { QueryContext query = new QueryContext(); var q = from u in q

PHP中模糊查询并关联三个select框

1.在php中我们经常用到下拉框,并相互关联,如果下拉框的option非常多,那么我们就要用到模糊搜索功能,那么怎么做呢? 在此功能中,走了弯路,最好不要关联两个select的id值后select属性选中,并不可修改.再次选择的时候去除属性,这样在去除select属性的时候存在火狐和google js兼容的问题.很容易出现不对应或者属性不能去除的情况,且功能麻烦.另外在后台一定要判断两者的对应关系.(在后台比对两者的对应关系的时候,要去数据库查询,找到企业的id,去数据库查询担保公司的id比对.