SQL中 like 通配符 特殊字符处理

以下是一些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的。
a_b... a[_]b%
a%b... a[%]b%
a[b... a[[]b%
a]b... a]b%
a[]b... a[[]]b%
a[^]b... a[[][^]]b%
a[^^]b... a[[][^][^]]b%

1. 在实际进行处理的时候,对于=操作,我们一般只需要如此替换:
‘ -> ‘‘

2. 对于like操作,需要进行以下替换(注意顺序也很重要)
[ -> [[] (这个必须是第一个替换的!!)
% -> [%] (这里%是指希望匹配的字符本身包括的%而不是专门用于匹配的通配符)
_ -> [_]
^ -> [^]

更多内容参见:

sql like 通配符 模糊查询技巧及特殊字符 - http://blog.csdn.net/lisliefor/article/details/6547861

时间: 2024-08-29 10:39:38

SQL中 like 通配符 特殊字符处理的相关文章

sql 取出一个字符串中最后一个特殊字符的右边的字符

SQL如何取出一个字符串中最后一个特殊字符右边的字符,例如:10*20*300,怎样得到300? 使用reverse配合charindex来实现. reverse是把字符串倒置,然后通过charindex来获取倒置之后第一个*的位置,然后使用substring函数进行字符串截取,截取后再使用reverse倒置回来即可. 以下为例子 declare @str varchar(20) set @str = '10*20*300' select reverse(substring(reverse(@s

SQL中的LIKE语句的用法

SQL中的LIKE语句的用法 内容 在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的. 假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据.现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:     select * from table1 wh

SQL模糊查询通配符_和%处理

下划线和百分号在sql模糊查询like语句中为特殊字符,分别可匹配1个字符和0到多个字符,如果需要真正查询特殊字符得转义,如like 'a\_b%' escape '\',将匹配前3个字符为a_b的所有记录. 1.PreparedStatement处理 普遍做法,拼sql时使用like ?,左模糊在查询条件字符串左侧添加%,右模糊在查询条件字符串右侧添加%,对特殊字符进行预先转义 condition = condition.replaceAll("_", "\\\\_&quo

SQL中的等号、IN、LIKE三者的比较

SQL中的等号.IN.LIKE三者的比较SQL 中等号.IN.LIKE 三者都可以用来进行数据匹配 .但三者并不相同. 等号是用来查找与单个值匹配的所有数据: IN 是 用来查找 与多个值匹配的所有数据: 而 LIKE用来查找与一个模式匹配的所有数据. 1.等号   确切知道所要查 确切知道所要查找的内容,且为单一值时,可以使用等号运算符来进行数据比较.等号运算符中可以使用字符串.日期或数字.例如,查找名为“王静”的工作人员,可以使用等号进行匹配: SELECT name, sex, id, s

NSPredicate用法总结(Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取)

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): [objc] view plaincopy NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format:(1)比较运算符>,<,==,>=,<=,!=可用于数值及字符串例:@"number > 100" (2)范围

教您如何使用SQL中的SELECT LIKE like语句

LIKE语句在SQL有着不可替代的重要作用,下文就将为您介绍SQL语句中SELECT LIKE like的详细用法,希望对您能有所帮助. LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的. A:% 包含零个或多个字符的任意字符串: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE'%inger' 将搜索以字母 in

MySql的like语句中的通配符:百分号、下划线和escape

%代表任意多个字符 Sql代码 http://blog.csdn.net/yc7369/ select * from user where username like '%huxiao'; select * from user where username like 'huxiao%'; select * from user where username like '%huxiao%'; _代表一个字符 Sql代码 select * from user where username like '

linux中的通配符、元字符、转义符

linux中的通配符.元字符.转义符 linux中的通配符元字符转义符 shell命令的构成 通配符 元字符meta 转义符 example reference shell命令的构成 每条linux命令中的每一个character都是下面两种之中的一个: - literal:普通纯文本 - 保留字:通配符.元字符.转义字符 通配符 通配符是由shell处理的(不是由所涉及到命令语句处理的.事实上我们在shell各个命令中也没有发现有这些通配符介绍), 它仅仅会出如今命令的"參数"里(它

使用正则表达式实现像SQL中LIKE语句中的%和_通配

在项目中我们经常遇到将数据库的数据取到后再次进行筛选过滤的情况.LINQ to Entity提供了统一的查询接口并且可以高效的完成工作,但是对于我们常在SQL中使用的%和_这样的通配符并没有支持.我们只能通过String.Contains方法来实现简单的通配.使用String.Contains方法是无法达到在查询串中使用通配符的目的的.正则表达式虽然晦涩难懂,但功能十分强大,解决个统配符绰绰有余. 代码如下:     public static class LINQHelper     {