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. 39 (guava包)AbstractScheduledService的使用

    package com.da.tool.guava; import com.google.common.util.concurrent.AbstractScheduledService; import ...

  2. (转)js实现倒计时效果(年月日时分秒)

    原文链接:http://mengqing.org/archives/js-countdown.html 之前做的活动页面很多都用到了倒计时功能,所以整理下下次直接用.(用的是张鑫旭写的一个倒计时,稍作 ...

  3. Django 学习 之 模板(html)与配置静态文件

     一.模板(html) 1.模板语法之变量:语法为 {{ }} 在 Django 模板中遍历复杂数据结构的关键是句点字符, 语法:{{ var_name }} var_name 是一个变量名称,需要和 ...

  4. python词云图与中文分词

    2019-12-12中文文本分词和词云图具体功能介绍与学习代码: import jiebaa="由于中文文本的单词不是通过空格或者标点符号来进行分割"#jieba.lcut()s是 ...

  5. 【剑指Offer面试编程题】题目1503:二叉搜索树与双向链表--九度OJ

    题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个 ...

  6. B树 VS B+树

    参考:https://www.cnblogs.com/vincently/p/4526560.html

  7. 与Python的第一次见面

    1.Python的起源 Python的作者,Guido von Rossum,确实是荷兰人.1982年,Guido从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕 ...

  8. AngularJS1.X指令

    <!DOCTYPE html> <html ng-app='myApp'> <head> <meta charset="utf-8"> ...

  9. SpringBoot Date类型插入数据库始终比正确时间早一天问题解决办法

    bug描述 昨天的Date插入不进去问题解决后,一直没发现其实插入的时间一直比正确的时间早一天 输出sql语句,发现insert语句还是对的,不知道为什么插入数据库之后结果就早了一天 https:// ...

  10. java小项目之:抽奖系统!java初学者必备(内附源码)

    [Java]Java摇奖源码,Java抽奖源码,Java随机抽奖源码 任务描述 本次任务要求为某商场开发一套幸运抽奖系统,客户必须首先注册成为该商场会员,会员登录成功后,就可以参加抽奖活动了.注册 用 ...