`

Mysql中like查询中存在反斜杠的解决方法

阅读更多

 

    一般like查询语句:

 

like '%test%'

 

    但是如果某个字段存在'\':

 

    这样的写法

like '%\%'

 

    以及

 

like '%\\%'

 

    都是不正确的。

 

    正确的写法:

 

like '%\\\%'

    原因:

    反斜线符号会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜线符号接受匹配

 

 

分享到:
评论
1 楼 wanlic2008 2012-06-28  
呵呵,4个斜杠才是正确的。
mysql> select * from testZh t where t.mrId like '贵州普定\电厂';
Empty set

mysql> select * from testZh t where t.mrId like '贵州普定\\电厂';
Empty set

mysql> select * from testZh t where t.mrId like '贵州普定\\\
电厂';
Empty set
mysql> select * from testZh t where t.mrId like '贵州普定\\\\
电厂';
+----+---------------+-----------------------------------+------+---------------------+
| id | mrId          | mrName                            | text | isrTime             |
+----+---------------+-----------------------------------+------+---------------------+
|  1 | 贵州普定\电厂 | 贵州普定电厂PDD\110.00千伏\CB_120 | sd   | 2012-06-04 10:18:47 |
+----+---------------+-----------------------------------+------+---------------------+
1 row in set

相关推荐

    关于通过Java连接mysql对反斜杠”\“转义的测试详解

    在数据交互中,字符转义处理是必须面对的问题,特别是反斜杠“\”在 Java 和 MySQL 中的特殊意义,使得其在使用时需要进行转义处理,以确保数据的正确传输和查询。本文将详细介绍通过 Java 连接 MySQL 对反斜杠“\”...

    浅谈MySQL模糊查询中通配符的转义

    sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符。如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就...

    java使用mysql的escape遇到的坑.pdf

    为了在字符串中使用这些字符本身,而不是作为特殊字符,我们需要使用反斜杠`\`进行转义。然而,Java和MySQL对于字符串转义的处理方式有所不同,这可能导致一些混淆。 1. **转义限制**: - MySQL的`escape`选项只能...

    Mysql数据库设计.pdf

    在MySQL中,字符串可能包含特殊字符,如NUL(\0)、单引号(')、双引号(")、退格(\b)、换行(\n)、回车(\r)、制表符(\t)和反斜杠(\)。为了正确表示这些特殊字符,我们需要使用反斜杠进行转义。 2. **数值列类型**: -...

    php中mysql数据库的sql注入与全面防范

    例如,Magic Quotes 可以将用户输入的单引号(')转义为反斜杠(\)和单引号(\'),以防止 SQL 注入。 3. 使用参数化查询 参数化查询是防止 SQL 注入的一种有效方法。例如,可以使用 prepare 语句来准备 SQL 语句...

    Mysql| 使用通配符进行模糊查询详解(like,%,_)

    1. **转义特殊字符**:使用反斜杠`\`来转义`%`和`_`,例如`LIKE '\%test\%'`和`LIKE '_test_'`。 2. **使用`INSTR()`函数**:`INSTR()`函数可以在不使用通配符的情况下实现类似的功能,而且通常执行速度更快。例如,...

    php javascript html mysql 特殊字符处理.txt

    JavaScript中也存在特殊字符,例如引号和反斜杠,需要正确处理以避免语法错误。 1. **字符串转义**:JavaScript字符串支持转义字符,如`\n`(换行)、`\t`(制表符)等。 - 示例代码: ```javascript var str = ...

    Windows下配置MySQL集群(win8测试)

    - 在配置文件中,路径使用的是正斜杠`/`而不是反斜杠`\`,这是因为MySQL Cluster期望路径中使用正斜杠作为分隔符。 - `DataMemory`和`IndexMemory`分别指定了分配给数据存储和索引存储的内存大小。这些设置应根据...

    mysql 特殊命令总结

    - 如果使用的是Windows系统,路径分隔符应使用反斜杠`\`而不是正斜杠`/`。 以上就是从给定的文件信息中整理出的主要MySQL特殊命令知识点。这些命令在日常数据库管理和维护中非常实用,能够大大提高工作效率。希望...

    SQL中的转义字符

    在MySQL中,你不需要 `ESCAPE` 关键字,直接使用反斜杠 `\` 就可以转义这两个字符,例如 `SELECT * FROM tb WHERE col LIKE '%\%%' OR col LIKE '%\_'`。 对于单引号 `'` 的转义,Oracle中仍然只接受双单引号 `''` ...

    Windows下修改mysql的data文件夹存放位置的方法

    请注意,在路径中使用的是反斜杠(\),而不是斜杠(/),否则配置可能不会成功。 3. 在完成修改后,需要退出所有正在运行的MySQL服务,并通过命令提示符执行以下命令停止MySQL服务: ``` net stop mysql ``` ...

    在MySQL中使用通配符时应该注意的问题

    本篇文章将深入探讨在MySQL中使用通配符时应注意的问题,特别是下划线的误用及其解决方法。 首先,我们要了解MySQL中两个最常见的通配符: 1. `%` - 代表任意数量的字符,包括零个字符。例如,`like 'exp_site_10%...

    [UNIX系统管理高手].A.Programmer's.Reference.Guide.To.Mysql.And.Perl.Dbi

    需要注意的是,如果字符串中包含引号,可以通过前缀反斜杠(\)进行转义。例如,`'It\'s a sunny day'` 或 `"It\"s a sunny day"` 都可以正确表示含有引号的字符串。 - **转义字符**:MySQL支持多种转义字符,如: -...

    MySQL模糊查询语句整理集合

    在SQL中,有四种主要的模糊查询模式,它们分别是百分号 `%`、下划线 `_`、方括号 `[ ]` 和 反斜杠 `[^ ]`。 1. 百分号 `%`: `%` 是一个非常常用的通配符,它代表任意数量(包括零个)的字符。例如,在查询 `...

    Python处理mysql特殊字符的问题

    如果在Python中处理的字符串中包含单引号,需要手动添加反斜杠转义,或者使用数据库API提供的参数化查询功能。 3. **使用参数化查询**: - 使用参数化查询是更安全、更推荐的方法。例如,使用`pymysql`库,你可以...

    第13周做题记录1

    虽然存在WAF(Web Application Firewall)过滤了一些关键字,但未阻止反斜杠(\)和井号(#)的使用。利用这一点,我们可以转义引号并在密码字段中添加注释,从而绕过过滤。然后,通过构造带有`exp`函数的SQL注入,...

    数据库里的字符处理 txt文件

    通常使用两个单引号('')或者反斜杠(\)进行转义。 7. **正则表达式**:在数据库查询中,可以使用正则表达式进行复杂模式匹配,如SELECT语句中的LIKE和REGEXP操作符。 8. **字符处理的性能影响**:字符处理操作,...

    MYSQL使用正则表达式过滤数据

    - 特殊字符匹配:需使用反斜杠(\)转义,如`\.`匹配".",`\[`匹配"[",`\|`匹配"|",`\-`匹配"-"。 3. 多个实例匹配: - 重复次数:`REGEXP '[:digit:]{4}'` 匹配连续的四位数字。 4. 定位符: - ^ 表示开始,`...

Global site tag (gtag.js) - Google Analytics