首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在json中用特殊字符替换的全文。怎么了?

问在json中用特殊字符替换的全文。怎么了?
EN

Stack Overflow用户
提问于 2019-03-26 15:01:07
回答 1查看 60关注 0票数 0

我对全文和在MySql中查找/替换搜索并不陌生,但我不明白为什么在这次新的尝试中,我无法达到预期的结果。我想做的基本上很简单。我有一个标准的表,我想用另一部分来查找/替换json的一部分。问题是我甚至找不到我要找的那部分文字(当然.我肯定它在那里,因为我可以在转储中找到它,或者只是在txt文件中复制我的字段内容)。没有错误,没有结果。

表: id \ jsonData我想在其中搜索的字段是jsonData,中介文本。我想找到这个:

{"id":"sPT“、”标签“:”技术延迟中的成本“、”类型“:”整数“、”值“:0}],

代之以:

{"id":"sPT“、”标签“:”技术延迟中的成本“、”类型“:”整数“、”值“:0}、{”id“:”节目“、”标签“:”节目“、”类型“:”整数“、”值“:0},

我的尝试..。简单搜索:使用‘参考mySql手册’

1.

代码语言:javascript
复制
SELECT *  FROM `projects` WHERE `jsonData` LIKE '%{"id":"sPT","label":"Cost in tech delay","type":"integer","value":0}],%'

使用“引用mySql手册\转义为”

2.

代码语言:javascript
复制
SELECT *  FROM `projects` WHERE `jsonData` LIKE "%{\"id\":\"sPT\",\"label\":\"Cost in tech delay\",\"type\":\"integer\",\"value\":0}],%"

当然,替换,相同的新税,没有结果:

代码语言:javascript
复制
UPDATE `projects`
 SET `jsonData` = replace(jsonData, '%{"id":"sPT","label":"Cost in tech delay","type":"integer","value":0}],%', '%{"id":"sPT","label":"Cost in tech delay","type":"integer","value":0},{"id":"program","label":"program","type":"integer","value":0}],%');

当然,使用转义,结果总是一样的。没有罪过错误,但没有结果。如果我用较短的句子来搜索,我就会得到预期的结果.但我真的需要整根绳子被识别。

有什么想法吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-03-26 15:17:06

REPLACE()模式不支持通配符。%作为通配符没有任何特殊的意义,就像它对LIKE谓词所做的那样。

MySQL 8.0引入了一个新的函数,替换(),它可以实现您想做的事情。

但是使用字符串替换技术修改JSON总是容易出错。如果要在MySQL中使用JSON,则应该练习使用JSON函数。

更好的做法是完全忘记使用JSON。我还没有看到JSON在SQL数据库中的任何使用,而这些JSON不会通过定义普通的表和列来更容易、更清晰地解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55360297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档