如何使用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
语句的输出?