`

escape在sql中的妙用

 
阅读更多
1、escape是干什么用的?
escape相对于转移字符



2、escape在什么情况下使用?
举例说明:

例如我们要进行模糊查询:





--测试数据

declare @tablea table (id int ,col varchar(20))

insert into @tablea

select 1,'maco' union all

select 2,'mao' union all

select 3,'micro'



--模糊查询

select * from @tablea where col like '%ma%'



/*结果

id          col

----------- --------------------

1           maco

2           mao

*/





这是最普通的模糊查询了

但是当col列含有特殊字符例如%%的时候





declare @tableb table (id int ,col varchar(20))

insert into @tableb

select 1,'m%a%co' union all

select 2,'m%a%o' union all

select 3,'miacro'



select * from @tableb where col like '%%a%%'



上面这句就不行了,结果相当于%a%,有a的都出来了

/*

结果:

id          col

----------- --------------------

1           m%a%co

2           m%a%o

3           miacro

*/



此时我们可以用escape来处理



declare @tablec table (id int ,col varchar(20))

insert into @tablec

select 1,'m%a%co' union all

select 2,'m%a%o' union all

select 3,'miacro'



--模糊查询

select * from @tablec where col like '%$%a$%%' escape '$'

/*结果

id          col

----------- --------------------

1           m%a%co

2           m%a%o

*/

@【叶子】http://blog.csdn.net/maco_wang 原创作品,转贴请注明作者和出处,留此信息。

分享到:
评论

相关推荐

    sql中as的一些用法

    ### SQL中的AS关键字详解 在SQL语言中,`AS`关键字是一个非常实用的功能,它主要用于为查询结果中的列或者表创建别名。这种别名的使用不仅能够提高SQL语句的...在实际开发中灵活运用这些技巧,将会大大提高工作效率。

    sql模糊查询的学习

    在本篇文章中,我们将深入探讨SQL模糊查询的核心概念,包括`LIKE`关键字、通配符以及`ESCAPE`子句的应用。 首先,`LIKE`关键字是实现模糊查询的关键。它用于在`WHERE`子句中比较列的值是否符合指定的模式。基本语法...

    精通SQL--结构化查询语言详解

    1.6.4 sql环境中对象的命名规则 18 第2章 主要的关系数据库与sql 21 2.1 sql server 21 2.1.1 sql server的结构 21 2.1.2 数据库访问标准化接口—odbc 22 2.1.3 使用查询分析器执行sql语句 22 2.2 transact-...

    oracle sql项目开发中常见问题总结

    在Oracle SQL项目开发中,经常会遇到各种问题,以下是一些常见的问题及其解决方案: 1. **查询包含特殊字符的数据** 当需要查询包含特殊字符(如%或_)的数据时,可以使用`LIKE`关键字配合`ESCAPE`来指定特殊字符...

    SQL 数据库 注入攻击的种类和防范手段

    3. **数据库的原生防护机制**:虽然部分数据库如MySQL提供了如`mysql_real_escape_string()`等函数来转义特殊字符,防止SQL注入,但在实际应用中,若未正确使用这些功能,仍然存在被攻击的风险。 4. **盲注攻击**:...

    php防SQL注入的一个类.zip

    在IT行业中,SQL注入是一种常见的安全威胁,攻击者通过输入恶意的SQL代码,欺骗数据库执行非预期的操作,从而获取敏感信息或破坏数据。为了解决这个问题,PHP开发者通常会使用各种方法来防止SQL注入,其中之一就是...

    从实践中学习OracleSQL

    - `ESCAPE`用于在`LIKE`操作中定义转义字符,如`WHERE dname LIKE 'IT~_%' ESCAPE '~'`。 5. **排序**: - `ORDER BY`子句用于排序结果,`DESC`表示降序,`ASC`表示升序。例如,`ORDER BY sal DESC`按薪水降序...

    Oracle数据库Sql语句详解大全.pdf

    在使用LIKE进行模式匹配时,如果通配符本身出现在模式中,需要使用ESCAPE关键字来转义该字符。例如,查询以`s_`开头的表名: ```sql SELECT table_name FROM user_tables WHERE table_name LIKE 'S\_%' ESCAPE '\';...

    如何反顾SQL注入攻击

    SQL注入是一种常见的安全漏洞,攻击者通过在应用程序的输入字段中插入恶意SQL语句,利用这些语句来操控后端数据库,获取敏感数据、修改或删除数据等。这种攻击方式之所以广泛存在,主要是因为许多开发人员在编写应用...

    2009达内SQL学习笔记

    在处理SQL语句时,其中所有的空格都被忽略(空格只用来分开单词,连续多个空格当一个用)。 SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。 多条SQL语句必须以分号分隔。多数DBMS不需要在单条SQL语句后...

    Oracle数据库Sql语句详解大全

    - 掌握如何在查询中使用表达式和运算符。 - 了解如何处理空值。 - 学习如何给查询结果中的字段起别名。 - 熟悉如何进行列的连接操作。 **SELECT查询基本语法:** ```sql SELECT <列名> FROM <表名>; ``` **示例:...

    SQL语句复习(精装版)

    SQL语句是数据库管理的核心工具,用于从关系型数据库中提取、更新、删除和修改数据。本篇将针对提供的复习内容,深入解析SQL查询语句的相关知识点。 首先,我们了解了三个基本表:学生表(Student),课程表(Course)...

    Oracle_学习使用SQL语句

    Oracle SQL语句是数据库开发中的基础工具,它用于在Oracle数据库中进行数据查询、更新、删除等操作。本文主要探讨了几个重要的SQL概念和...在实际应用中,还应结合具体的业务需求和性能优化技巧,灵活运用这些SQL语句。

    php防止SQL注入详解及防范

    SQL注入是一种常见的网络安全威胁,它发生在应用程序未能正确过滤或转义用户输入,导致恶意构造的SQL语句被执行,从而可能泄露、修改或删除数据库中的敏感信息。PHP是Web开发中常用的脚本语言,因此理解如何在PHP中...

    数据库原理及应用实验二(单表查询)

    【数据库原理及应用实验二...以上就是实验中涉及到的SQL查询语句和相关知识点,通过这些操作,学生可以更好地理解和运用SQL进行数据检索和处理。通过这些练习,他们将能够熟练地在实际数据库环境中执行复杂的查询任务。

    PHP与SQL注入攻击[二]

    SQL注入攻击是一种常见的网络安全威胁,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,以此来操纵或破坏数据库。PHP作为广泛应用的服务器端脚本语言,自然也是这类攻击的目标。在PHP中,有一项名为Magic ...

    sqlserver 模糊查询常用方法

    在SQL Server中,模糊查询是用于查找不完全匹配特定模式的数据的关键技术。这种查询方法主要依赖于`LIKE`关键字,它可以用于搜索字符串、日期或时间值,这些值可以部分匹配或符合某种模式。以下是对`LIKE`关键字和...

    C#开发经验技巧宝典

    0841 如何正确地理解和运用SQL中的判式 503 0842 如何正确地理解和使用SQL中的关键字 503 19.2 比较、逻辑运算符查询 504 0843 如何使用算术运算符号进行比较查询 504 0844 如何使用比较运算符号进行比较...

    oracle 1z051

    文档中提到的“WHERE prod_id LIKE '%_D123%' ESCAPE '_'”展示了如何使用ESCAPE关键字来指定转义字符,以便在使用LIKE子句进行模式匹配时可以包含通配符本身作为匹配的一部分。这对于执行某些特殊字符作为分隔符的...

    第二十节 Sqlmap系统参数-01

    在实际应用中,开发人员可能会使用`mysql_real_escape_string()`或`addslashes()`等函数来防止SQL注入。然而,这些函数在处理宽字节字符时可能存在漏洞。以Sqli-Less32为例,尽管使用了`mysql_real_escape_string()`...

Global site tag (gtag.js) - Google Analytics