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中模糊查询对于特殊字符的处理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 浅谈sqlserver下float的不确定性

    很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 0 = 0.00000000000000123 还是 0 = 0.00000000000999这样的东西.也许一开始使用的时候没有问题,但是有时候做统计的时候,就会看出端倪 简单的举个例子,就知道统计的时候,有可能出现意外的效果,导致可能需要存储过程或者接收程序的代码左额外的取舍数位的处理,所以在此其实我是推荐使用Numeric来替代float进行一个替代使用,避免一个sum ,然后明明明细看每一条数据都是

  • Sqlserver 高并发和大数据存储方案

    随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高! 案例:游戏平台. 1.解决高并发 当客户端连接数达到峰值的时候,服务端对连接的维护与处理这里暂时不做讨论.当多个写请求到数据库的时候,这时候需要对多张表进行插入,尤其一些表 达到每天千万+的存储,随着时间的积累,传统的同步写入数据的方式显然不可取,经过试验,通过异步插入的方式改善了许多,但与此同时,对读取数据的实时性也需要做一定的牺牲. 异步的

  • SQLServer中防止并发插入重复数据的方法详解

    SQLServer中防止并发插入重复数据,大致有以下几种方法: 1.使用Primary Key,Unique Key等在数据库层面让重复数据无法插入. 2.插入时使用条件 insert into Table(****) select **** where not exists(select 1 from Table where ****); 3.使用SERIALIZABLE隔离级别,并且使用updlock或者xlock锁提示(等效于在默认隔离级别下使用(updlock,holdlock)或(xl

  • sqlServer实现去除字符串空格

    说起去除字符串首尾空格大家肯定第一个想到trim()函数,不过在sqlserver中是没有这个函数的,却而代之的是ltrim()和rtrim()两个函数.看到名字所有人都 知道做什么用的了,ltrim()去除字符串左边的空格,rtrim()去除字符串右边的空格,要去除首尾空格同时使用这个两个函数就好了. 测试: select ltrim(' test ') --去除左边的空格 select rtrim(' test ') --去除右边的空格 select ltrim(rtrim(' test '

  • SqlServer 在事务中获得自增ID的实例代码

      SqlServer 在事务中获得自增ID实例代码 在sqlserver 中插入数据时,如何返回自增的主键ID,方式有很多,这里提供一种. 代码如下: USE tempdb go CREATE TABLE table1 ( id INT, employee VARCHAR(32) ) go INSERT INTO table1 VALUES(1, 'one') INSERT INTO table1 VALUES(2, 'two') INSERT INTO table1 VALUES(3, 't

  • 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

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

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

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

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

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

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

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

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

  • jQuery基于xml格式数据实现模糊查询及分页功能的方法

    本文实例讲述了jQuery基于xml格式数据实现模糊查询及分页功能的方法.分享给大家供大家参考,具体如下: 1.此代码只支持xml 格式数据,根据不同需求修改ajax的success方法就ok了 2.此代码只是针对ajax只需一次请求的情况下 String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"");};//解决ie trim问题 (function($) { /** * ============

  • java留言管理系统中模糊查询实例分享

    本文分享了一个基于MVC+DAO的留言管理系统,包含增删改查,其中查询,有全部查询和按关键字进行模糊查询的功能,具体内容如下 NoteDAO.Java package cn.mldn.lxh.note.dao ; import java.util.* ; import cn.mldn.lxh.note.vo.* ; public interface NoteDAO { // 增加操作 public void insert(Note note) throws Exception ; // 修改操作

  • mongo中模糊查询的综合应用

    前言 以下是一个mongo查询的综合应用,即介绍一个生产中实际应用的模糊查询,当然其实也很简单,主要用到mongo中的模糊查询和$or查询,以及并的关系,下面是一个mongo中的一条记录 { "_id" : "ffe6a068-9043-4334-97d2-75387340e655", "file_id" : "ffe6a068-9043-4334-97d2-75387340e655", "name" :

  • MyBatis中模糊查询使用CONCAT('%',#{str},'%')出错的解决

    目录 模糊查询使用CONCAT('%',#{str},'%')出错 原因及解决 MyBatis like模糊查询,CONCAT函数用法 以MySQL为例 模糊查询使用CONCAT('%',#{str},'%')出错 原因及解决 经过我一套乱七八糟毫无思路地查找后,发现不是Mybatis的原因,原来是SQL server不支持CONCAT函数,直接用加号连接就好 MyBatis like模糊查询,CONCAT函数用法 以MySQL为例 <select id="getByPage"

  • Mysql中分页查询的两个解决方法比较

    mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 复制代码 代码如下: SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM foo WHERE b = 1 LIMIT 100,10; 另外一种是使用SQL_CALC_FOUND_ROWS 复制代码 代码如下: SELECT SQL_CALC_FOUND_ROWS a FROM foo WHERE b = 1 LIMIT 100, 10; SELECT FOUND_

随机推荐