MySQL的转义字符“\”
\0  
一个ASCII  0  (NUL)字符。   
\n   
一个新行符。   
\t   
一个定位符。   
\r   
一个回车符。   
\b   
一个退格符。   
\'   
一个单引号(“'”)符。   
\  "   
一个双引号(“  "”)符。   
\\   
一个反斜线(“\”)符。   
\%   
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。   
\_
 
select 'ab\'ab' as a,'ab\"ab' as b, 'ab\tab' as c, 'ab\bab' as d,'ab\\ab' as e,'ab\\\\ab' as f,'ab\nab' as g;
 
如果你想要把二进制数据插入到一个BLOB列,下列字符必须由转义序列表示:   
NUL        ASCII  0。你应该用'\0'(一个反斜线和一个ASCII  '0')表示它。   
\                ASCII  92,反斜线。用'\\'表示。 
'            ASCII  39,单引号。用’\’’表示。   
"                ASCII  34,双引号。用’\”’表示。
 
当SQL语句中使用Like查询,且期望匹配的结果中含有"\"的,应当把"\"替换为"\\\\"。
    比如数据库中text字段有以下三行:
id               text
1                au1224 su5b9e1u9a8c
2                \24\a su5b9e1u9a8c
3                \24\\a su5b9e1u9a8c
当我们使用下面这三种方式查询时,都会得到id 为1,2,3三行,原因后面会讲。
select * from test_table where text like "%\24%";
select * from test_table where text like "%\\24%";
select * from test_table where text like "%\\\24%";
只有像下面这样使用四个反斜杠"\\\\"查询时,才会得到期望的包含"\24"的结果(id为2、3的两行)。
select * from test_table where text like "%24\\\\%";
进一步,如果期望查询到的结果更准确,比如只得到id为2的第二行,应该像下边这样查询。
select * from test_table where text like "%24\\\\a%";
同理,只得到id为3的第三行,匹配两个反斜杠"\\",应该使用八个反斜杠"\\\\\\\\":
select * from test_table where text like "%24\\\\\\\\a%";
 
原因其实很简单,在mysql中,反斜杠在字符串中是转义字符,在进行语法解析时会进行一次转义,
所以当我们在insert字符时,insert "\\" 在数据库中最终只会存储"\"。
而在mysql的like语法中,like后边的字符串除了会在语法解析时转义一次外,还会在正则匹配时进行第二次的转义。
因此如果期望最终匹配到"\",就要反转义两次,也即由"\"到"\\"再到"\\\\"。

Mysql 模糊查询 转义字符的更多相关文章

  1. MySQL模糊查询:LIKE模式和REGEXP模式

    MySQL模糊查询提供了两种模式:LIKE模式和REGEXP模式. LIKE模式 LIKE模式是使用的LIKE 或 NOT LIKE 比较运算符进行模糊查询. SELECT 字段 FROM 表 WHE ...

  2. mysql模糊查询like/REGEXP

    原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像, ...

  3. mysql模糊查询 like/REGEXP

    原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像, ...

  4. Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm

    这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下   项目开发中,在做Mybatis动态查询时,遇到了 ...

  5. mysql: 模糊查询 feild like keyword or feild like keyword , concat(feild1,feild2,feild3) like keyword

    mysql: 模糊查询 feild like '%keyword%' or feild like'% keyword%' , 或者 concat(feild1,feild2,feild3) like ...

  6. MySQL模糊查询

    第一种最土的方法:使用like语句第二种用全文索引 有两种方法,第一种最土的方法:使用like语句第二种听涛哥说用全文索引,就在网上搜一下: 如何在MySQL中获得更好的全文搜索结果 mysql针对这 ...

  7. MYSQL 模糊查询

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  8. 关于Mysql模糊查询的优化-全文检索和Like的使用

    表A:CREATE TABLE `tableA` (`id` int(11) NOT NULL auto_increment,`content` varchar(256) default NULL,P ...

  9. mysql模糊查询1,11,111用逗号(其他符号)拼接的相似字符串

    mysql进行模糊查询时,基本都是LIKE "%sss%",有时候这种查询时准确的,但是有种情况这种查询会出现很大问题. 看一下下面这张表 如果想查询字段test包含1的数据,一般 ...

随机推荐

  1. Linux centos7 LAMP架构介绍、 MySQL、MariaDB介绍、MySQL安装

    一.LAMP架构介绍 为Linux+Apache(httpd)+MySQL+PHP简写,把后三者安装在Linux Apache是最常用的的web服务软件,MySQL为小型的数据库存储软件,PHP为脚本 ...

  2. redis5.0版本集群搭建

    模式简介 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redis 命令,比如:mget, 因 ...

  3. 纪录片 - Why Are We Fat?(全3集)

    1. 传送门:https://www.bilibili.com/video/av13977351?spm_id_from=333.338.__bofqi.16 2. 笔记 第一型糖尿病是天生的,第二型 ...

  4. Kali aircrack-ng wifi密码破解(暴力)

    1.kali linux安全渗透 2.工具aircrack-ng 3.ifconfig查看你的网卡信息,wlan0即无线网卡,注意,如果没有发现网卡可能是芯片不能被识别,建议选择网卡芯片为3037或r ...

  5. Lesson 12 banks and their customers

    Why is there no risk to the customer when a bank prints the customer's name on his cheques? When any ...

  6. Victor and String[Bestcoder #52 1004](回文树)

    题目描述 Victor喜欢玩字符串.他认为一个字符串是迷人的,当且仅当字符串是回文的.Victor想玩n次.每次他都会做以下四种操作中的一种.操作1:在字符串的开头添加一个字符 c.操作2:在字符串的 ...

  7. 回文串[APIO2014](回文树)

    题目描述 给你一个由小写拉丁字母组成的字符串 s.我们定义 s 的一个子串的存在值为这个子串在 s中出现的次数乘以这个子串的长度.对于给你的这个字符串 s,求所有回文子串中的最大存在值. 输入格式 一 ...

  8. swoole之内存

    一.代码 <?php // 可以用来数据共享 // 执行完后 自动释放 // 创建内存表 $table = new swoole_table(1024); // 内存表增加一列 $table-& ...

  9. 初识Prometheus

    安装Prometheus Server Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖.用户只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动Prom ...

  10. c++ char* 与LPCTSTR相互转化

    ] = "wo shi ni baba"; , , ch, -, NULL, ); wchar_t *wide = new wchar_t[num]; MultiByteToWid ...