我是靠谱客的博主 拼搏薯片,最近开发中收集的这篇文章主要介绍mysql 字段值包含斜杠_Mysql like查询语句中,结果包含反斜杠 \ 字符的,需要替换成四个反斜杠 \\\\...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如题,当SQL语句中使用Like查询,且期望匹配的结果中含有""的,应当把""替换为"\\"。

比如数据库中text字段有以下三行:

id text

1 au1224 su5b9e1u9a8c

2 24a 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://blog.csdn.net/mrqingyu/article/details/81004580

最后

以上就是拼搏薯片为你收集整理的mysql 字段值包含斜杠_Mysql like查询语句中,结果包含反斜杠 \ 字符的,需要替换成四个反斜杠 \\\\...的全部内容,希望文章能够帮你解决mysql 字段值包含斜杠_Mysql like查询语句中,结果包含反斜杠 \ 字符的,需要替换成四个反斜杠 \\\\...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部