Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用mySQL搜索转义字符串?_Mysql_Sql - Fatal编程技术网

如何使用mySQL搜索转义字符串?

如何使用mySQL搜索转义字符串?,mysql,sql,Mysql,Sql,我有一个最奇怪的问题: 我正在尝试获取一列的计数,数据格式如下: "{\"errors\":0,\"results\":{\"isError\":true,\"errorCode\":305,\"errorString\":\"Contact already exists: test@gmail.com\"}}" 这是一个包含转义字符的字符串 我试图在iError:true上搜索,但我所做的一切都不起作用 我试过了 从mytable中选择*,其中的列如“%isError\”:true%“ 从m

我有一个最奇怪的问题:

我正在尝试获取一列的计数,数据格式如下:

"{\"errors\":0,\"results\":{\"isError\":true,\"errorCode\":305,\"errorString\":\"Contact already exists: test@gmail.com\"}}"
这是一个包含转义字符的字符串

我试图在iError:true上搜索,但我所做的一切都不起作用

我试过了

从mytable中选择*,其中的列如“%isError\”:true%“

从mytable中选择*,其中类似“%isError\”的列为:true%

从mytable中选择*,其中的列类似“%isError”:true%'

从mytable中选择*,其中的列如“%isError\\”:true%

结果都是零

如何搜索此转义字符串

这是完整的数据。请记住,它存储为字符串

“{\“errors\”:0,“results\”:{\“isError\”:true,“errorCode\”:305,“errorString\”:\“联系人已存在:test@gmail.com\“}}”

它的存储与文本类型列中的存储完全相同,外部引用和所有内容


(这是我正在使用的遗留系统。)

您显示的数据示例类似于JSON。MySQL 5.7中有搜索JSON结构的功能:


没有理由在数据库中存储反斜杠。插入此数据时是否意外双重转义?

显示的数据示例类似于JSON。MySQL 5.7中有搜索JSON结构的功能:


没有理由在数据库中存储反斜杠。插入此数据时是否意外使用了双转义?

我相信MySQL中的反斜杠也是转义符号,这是查询中唯一需要转义的东西(如果使用单引号,无论如何都应该使用单引号)。要避开反斜杠,只需重复:

select * from mytable where col like '%isError\\":true%'

不过,Bill提出了一个很好的观点——从长远来看,以不同的方式存储JSON会更好。

我相信MySQL中的反斜杠也是一个转义符号,这是查询中唯一需要转义的东西(如果使用单引号,无论如何都应该使用单引号)。要避开反斜杠,只需重复:

select * from mytable where col like '%isError\\":true%'
不过Bill提出了一个很好的观点——从长远来看,以不同的方式存储JSON会更好。

我找到了答案

要在字符串中使用LIKE搜索转义反斜杠,必须使用四个反斜杠。不是凭直觉,但就是这样

谢谢你的帮助。希望这对将来的人有所帮助。

我找到了答案

要在字符串中使用LIKE搜索转义反斜杠,必须使用四个反斜杠。不是凭直觉,但就是这样


谢谢你的帮助。希望这对将来的人有所帮助。

尝试过
'%isError\\\“:true%'
?也值得一看:是的'%isError\\“:true%'。没有幸运的
“%isError\\”:true%'
?也值得一看:是的“%isError\\”:true%'。不,幸运的是,我知道!我根本不会这样做。这是遗留代码。我试过这种方法,但不起作用。@NickKiermaier嗯,它在这里起作用。如果它对您不起作用,则数据可能不会完全按照您的想法存储。你能准确地显示
select
语句的输出吗?是的,我知道!我根本不会这样做。这是遗留代码。我试过这种方法,但不起作用。@NickKiermaier嗯,它在这里起作用。如果它对您不起作用,则数据可能不会完全按照您的想法存储。您能否准确显示
select
语句的输出?