SQL查询中的转义字符
分类: SQL Server 2007-12-06 13:25 5925人阅读 评论(3) 收藏 举报
如果想查找“_cs”结尾的的账户
select * from [user] where loginname like '%_cs'是不行的,_ 被认为是任意的字符,
所以需要转义字符,有两种写法:
select * from [user] where loginname like '%[_]cs'
select * from [user] where loginname like '%/_cs' escape'/'
通配符
|
含义
|
%
|
包含零个或更多字符的任意字符串。
|
_
|
任何单个字符。
|
[ ]
|
指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。
|
[^]
|
不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。
|
例如:
· LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
· LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
· LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
· LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
· LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
· LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
· LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如 MacFeather)。
使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
符号
|
含义
|
LIKE '5[%]'
|
5%
|
LIKE '5%'
|
5 后跟 0 个或更多字符的字符串
|
LIKE '[_]n'
|
_n
|
LIKE '_n'
|
an, in, on (and so on)
|
LIKE '[a-cdf]'
|
a, b, c, d, or f
|
LIKE '[-acdf]'
|
-, a, c, d, or f
|
LIKE '[ [ ]'
|
[
|
LIKE ']'
|
|
在like谓词查询中,会使用到两个通配符:"%"和"_"、,其中"%"表示零个或任意多个字符,"_"表示任意一个字符,但如果查询的条件表达式中出现了"%"和"_",就需要对其进行转义。
另外,还有一个特殊的字符"'",若出现在查询表达式中,也需要进行转义,其转义方式和以上两个字符的转义方式有些差别。下面以示例简单说明:
1、对"%"的转义
select * from student where description like '%!%%' escape '!'
本sql解释为取出表student中所有字段description中含有"%"的记录。
2、对"_"的转义
select * from students where description like '%!_%' escape '!'
本sql解释为取出表student中所有字段description中含有"_"的记录。
3、对"'"的转义
select * from students where description like '%''%''
本sql解释为取出表student中所有字段description中含有"'"的记录。
比较以上3条sql,不难看出,对于"%"和"_"需要指定一个转义字符,用关键字escape说明。例子中使用了'!',但你可以使用其它字符,比如字母a-z(大小写任意),或者数字0-9和其它字符等
分享到:
相关推荐
在SQL(结构化查询语言)中,转义字符是一个关键概念,它允许用户在字符串中插入特殊字符,如单引号、百分号和下划线,这些字符在SQL语句中通常具有特定含义。转义字符使得这些特殊字符能够被当作普通文本处理,而...
ACCESS中SQL语句的转义字符详解 ACCESS是一个功能强大且灵活的关系数据库管理系统,在构建数据库应用程序时,SQL语句扮演着至关重要的角色。但是,在编写SQL语句时,需要注意转义字符的使用,以避免语法错误和安全...
为了解决这个问题,Mybatis提供了一些处理转义字符的方式,以确保SQL语句能够正确地写入Mapper.xml文件中并被解析。 在Mapper.xml文件中处理转义字符的常见方法主要有以下几种: 1. 常用的XML转义字符写法 在XML中...
此外,了解其他常见的SQL转义字符也很重要。例如,在某些SQL方言中,反斜杠(\)用于转义,但Oracle并不使用反斜杠。在Oracle中,如果你需要在字符串中插入反斜杠,也需要使用两个反斜杠(\\)来表示一个实际的反...
短字符串使用转义字符可能更简洁,而长字符串使用转义字符可能影响可读性。另一方面,如果知道字符串中包含很多特殊字符,使用CDATA块可以避免频繁的转义操作,从而提高解析速度。 举一个实际应用的例子,假设我们...
对于SQL查询,我们可以移除或转义可能的危险字符。以下是一个简单的例子: ```javascript function escapeSql(input) { return input.replace(/[\x00-\x1f]/g, "") // 去除控制字符 .replace(/[-'\"]/g, "\\$&") ...
在SQL Server中,查询语句可能会遇到各种特殊字符,这些字符在特定的上下文中具有特殊的含义,如果直接使用,可能会影响到查询的结果。本篇将详细阐述如何处理这些特殊字符,特别是针对`LIKE`操作的特殊字符。 首先...
其次,关于SQL语句中的变量声明,之前在ABAP中,可以不使用转义字符`@`直接指定主机变量。然而,这种做法已经过时,现在推荐使用转义字符来明确表示变量,如`@abap_true`。 接下来,我们将深入探讨几种常用的ABAP ...
字符之间的转换支持:单字符转换、MSSQL转换、Oracle转换、字符集转换、URL反转、URL正传、URL转义、宽字符转换
在PHP编程中,处理输入转义字符是一个重要的安全措施,主要目的是防止SQL注入和其他类型的安全攻击。当用户通过HTTP请求(GET、POST、COOKIE)提供数据时,这些数据可能包含特殊字符,如单引号(')、双引号(")、...
在PHP编程语言中,反斜杠(\)作为转义字符使用,用于预处理特定字符,使其失去特殊含义。例如,单引号(')、双引号(")、反斜杠本身以及某些特殊字符(如\n代表换行,\r代表回车)。这在处理用户输入、数据库查询...
当这些字符出现在查询参数中时,如果不进行适当的转义或包围,可能会导致SQL语句解析错误,甚至安全漏洞,如SQL注入。 ### C#代码实现特殊字符处理 为了解决上述问题,我们可以编写一个函数,该函数接收一个字符串...
同时,为了处理复杂的特殊字符情况,可能还涉及了对字符串的预处理或后处理,例如转义特殊字符,确保拆分的正确性。 总之,这个压缩包提供的工具或教程为SQL Server用户解决了一项具体而常见的问题,即如何灵活地按...
- **功能**:此函数用于准备字符串以安全地插入到MySQL数据库中,通过转义特殊字符来防止SQL注入。 - **语法**:`mysql_real_escape_string(string, connection)` - **参数**: - `string`:要转义的字符串。 -...
在PHP编程中,反斜杠(\)是一个重要的转义字符,用于在字符串中表示特殊字符,例如在双引号中引用单引号(')或反斜杠本身。`get_magic_quotes_runtime()`是一个PHP内置函数,用于检查当前运行时是否启用了魔术引号...
QUOTENAME()函数用于对标识符进行转义,通常用于确保SQL语句中特殊字符的正确解析。 ```sql SELECT QUOTENAME('[My Table]', '['); -- 返回'[My Table]' ``` QUOTENAME()函数对于处理包含特殊字符的表名或列名等...
因此,对于这些特殊字符的转义和过滤是防止SQL注入的关键。 这个"SQL注入字符转换器1.0.6.1.exe"可能包含以下功能: 1. **字符转换**:它可以将常见的SQL关键字,如"and"、"or"、"union"、"--"、"/*"等,转换为...
转义字符主要用于在字符串中插入特殊字符或者确保特定字符不会被解释为SQL语法的一部分。本文主要探讨MySQL中的转义字符及其使用规则。 首先,转义字符是反斜线“\”,它用来告诉MySQL解析器,接下来的字符应当被视...
这是因为不转义的特殊字符可能导致SQL注入等安全问题,从而造成数据破坏、信息泄露甚至整个系统的瘫痪。这篇博客“插入数据库之前将特殊字符转义”深入探讨了这个关键话题。 SQL注入是一种常见的网络攻击方式,攻击...
当SQL引擎解析到`%`或`_`时,会先查找是否有转义字符,如果有,则将其视为普通字符处理,而不是作为通配符。 #### 三、总结 通过对ibatis框架下SQL语句中特殊字符处理方法的详细分析,我们可以看到,合理地使用...