like 内容转义
如题,当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后边的字符串除了会在语法解析时转义一次外,还会在正则匹配时进行第二次的转义。因此如果期望最终匹配到"\",就要反转义两次,也即由"\"到"\\"再到"\\\\"。
---------------------
作者:black-heart
来源:CSDN
原文:https://blog.csdn.net/mrqingyu/article/details/81004580
版权声明:本文为博主原创文章,转载请附上博文链接!
like 内容转义的更多相关文章
- atitit.js的 字符串内容 转义 js处理html
atitit.js的 字符串内容 转义 js处理html 1. js处理html的问题 1 2. js的 字符串内容 转义 1 2.1. 处理流程 1 3. 下面的表格列出了其余的特殊字符,这些特殊 ...
- Thinkphp kindeditor 内容转义
参考了:[解决]ThinkPHP整合Html编辑器时出现自动转义的问题 遇到问题也是保存到数据库中的内容,会转义成“\"” 使用 $data['content'] = stripslashe ...
- Shell中EOF内容转义
1.在$符号前面加反斜杠,如: cat > test.sh <<EOF \$test EOF 如果不加,将转成实际的值. 2.给EOF加个双引号,如: cat > test.s ...
- Shell中 heredoc 内容转义
1.在$符号前面加反斜杠,如: cat > test.sh <<EOF \$test EOF 如果不加,将转成实际的值. 2.给EOF加个双引号,如: cat > test.s ...
- 【ThinkPHP学习】ThinkPHP自己主动转义存储富文本编辑器内容导致读取出错
RT. ThinkPHP的conf文件里的Convention.php有一个配置选项 'DEFAULT_FILTER' => 'htmlspecialchars', // 默认參数过滤方法 用于 ...
- 基于SqlSugar的开发框架循序渐进介绍(21)-- 在工作流列表页面中增加一些转义信息的输出,在后端进行内容转换
有时候,为了给前端页面输出内容,有时候我们需要准备和数据库不一样的实体信息,因为数据库可能记录的是一些引用的ID或者特殊字符,那么我们为了避免前端单独的进行转义处理,我们可以在后端进行统一的格式化后再 ...
- PHP 5.4 已废弃 magic_quotes_gpc,PHP安全转义函数详解(addslashes 、htmlspecialchars、htmlentities、mysql_real_escape_string、strip_tags)
1. addslashes() addslashes()对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果D ...
- PHP常用的转义函数
1. addslashes addslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有 ...
- 【python】正则表达式中的转义问题
encode('string-escape') 解决 比如想匹配'\x0e\x0a'中的'\x'后的内容,这里希望把'\x0e'作为一个字符串,那么其中的\应该被转义. 未加转义的正则: p = '( ...
随机推荐
- 如何查看卖家ID (Merchant ID) 亚马逊哪里找?
如何查看卖家ID (Merchant ID) 亚马逊哪里找? 如何查看卖家ID (Merchant ID) 亚马逊哪里找? 1. 找到想要获取ID的卖家,点击店铺名(跟卖的卖家会收在”Other Se ...
- 在Mac os 10.11 下编译Berkeley caffe
安装各种补丁和组件,缺啥装啥. python 采用 2.7.13 最新版. 安装工具 homebrew , pip 很繁琐,但是没难度. 由于本人macbook pro不支持CUDA,所以不用安装. ...
- 小程序tab切换 点击左右滑动
wxml <scroll-view scroll-x="true" class="navbar-box"> <block wx:for=&qu ...
- JS回调函数中的this指向(详细)
首先先说下正常的this指向问题 什么是this:自动引用正在调用当前方法的.前的对象. this指向的三种情况 1. obj.fun() fun中的this->obj,自动指向.前的对 ...
- JQuery的常用选择器 转
JQuery的常用选择器 刚开始学JQuery写的如有错误欢迎批评指正 JQuery拥有的选择器可以让我们更快更方便找到想要的元素,然后对相应的元素进行操作 简单介绍一下一些常用的选择器: 1.基本选 ...
- python django连接错误
提示: connection.alias,django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0 ...
- vue-cli中怎么样使用less
1.安装安装less依赖,npm install less less-loader --save 2.修改配置文件, 在build/webpack.base.conf.js文件的module.expo ...
- Echars使用
声明一个Echars: var myChart = echarts.init(document.getElementById(Id)); 给Echars添加参数: var option = { 参数 ...
- React 的组件与 this.props对象
1.组件 React 允许将代码封装成组件,然后像插入普通 HTML 标签一样,在网页中插入这个组件.React.createClass 的方法就是用于生成一个组件类. 2.this.props对象 ...
- Python3浮点型(float)运算结果不正确处理办法
一.问题说明 以前对浮点数运行没有没有太在意.昨天同事要求把百分比结果保存到文件上,然后就以保存1位小数的形式给他保存了. 但是今天同事运行时问能不能统一以一位小数的形式保存,当时觉得很奇怪昨天就是以 ...