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后边的字符串除了会在语法解析时转义一次外,还会在正则匹配时进行第二次的转义。
因此如果期望最终匹配到"\",就要反转义两次,也即由"\"到"\\"再到"\\\\"。

转载于:https://www.cnblogs.com/a-s-m/p/11075903.html

Mysql 模糊查询 转义字符相关推荐

  1. mysql模糊查询 or_mysql的模糊查询

    mysql模糊查询like/REGEXP (1)like / not like MySql的like语句中的通配符:百分号.下划线和escape %:表示任意个或多个字符.可匹配任意类型和长度的字符. ...

  2. MySql模糊查询like通配符的使用

    MySql模糊查询like通配符使用详细介绍 ------------------------------------------------------ %代表任意多个字符  _代表一个字符 在 M ...

  3. mysql 单表多字段查询_单表多字段MySQL模糊查询的实现

    MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...

  4. mysql模糊查询 % , _ ,[], [^] 的区别

    mysql模糊查询总结 1. % 表示任意0个或多个字符 2. _ 表示任意单个字符(有且仅有一个字符,可以是中文,也可以是英文,也可以是数字) 3. [] 表示其中的某一个字符 4. [^] 表示除 ...

  5. mysql模糊查询指定根据第几个字符来匹配

    mysql模糊查询指定根据第几个字符来匹配 下图案例1中,查询某员工名中第三个字符位e,第五个字符为a的员工名和工资 select last_name,salary  FROM employess W ...

  6. 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 ...

  7. ibatis 模糊查询 mysql_Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办

    项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文 ...

  8. mysql模糊查询之索引优化

    mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...

  9. MySQL模糊查询 结果按匹配度 排序

    我们在使用 MySQL 进行模糊查询的时候,受到默认排序的影响,我们会发现与查询关键字相似的记录有时候并没有排到最前面. 如 : CREATE TABLE user(id BIGINT(11) AUT ...

最新文章

  1. Android ContentResolver
  2. 【集训第四天·继续刷题】之 lgh怒刚ypj
  3. android纯白背景加灰,Android背景颜色设置为灰色而不是@android:颜色/白色
  4. AB1601之iic驱动改造
  5. js 获取url问号前_收下这波 JS 技巧,从此少加班
  6. 09:向量点积计算【一维数组】
  7. 【论文研读】【医学图像】【R2UNet】Recurrent residual U-Net for medical image segmentation
  8. JAVA课程设计——拼图小游戏
  9. 计算机组成原理微指令课程设计,计算机组成原理课程设计(微程序设计) New.doc...
  10. 日志管理系统之保存日志到数据库
  11. 晶体管放大电路之应用
  12. 谷歌搜索引擎机器学习原理理解
  13. DDoS防御的8种方针详解
  14. 推荐一款护眼黑科技产品
  15. 07_数据降维,降维算法,主成分分析PCA,NMF,线性判别分析LDA
  16. windows版本10.0.17134,安装最新补丁后无法远程windows server 2008、2013、2016服务器
  17. 第7章--用户输入和while循环
  18. 【WLAN】【调试】使用wireshark过滤802.11各种报文(49种,全网最全)
  19. Boost的万能转换器--lexical_cast
  20. hive与pig比较

热门文章

  1. HH SaaS电商系统管理后台的商品规格编辑
  2. 简单的vue入门案例
  3. 做一个公众号大概要多少钱_公众号流量主一个月可以赚多少钱?
  4. python椭圆拟合_opencv python 轮廓特征/凸包/外接矩形/外接圆/拟合矩形/拟合直线/拟合圆...
  5. python集合和字典的区别_Python中的字典和集合
  6. php7.1 split,PHP 函数 split()
  7. 交换机和路由器的区别是什么?
  8. 【渝粤教育】国家开放大学2018年春季 0077-21T古代汉语专题 参考试题
  9. 【渝粤教育】广东开放大学 软件工程 形成性考核 (50)
  10. 【渝粤题库】陕西师范大学210004幼儿园美术教育作业(高起专)