首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当文档在MySQL5.7中包含json_string作为值时,插入到json列时获得一个错误

当文档在MySQL5.7中包含json_string作为值时,插入到json列时获得一个错误
EN

Stack Overflow用户
提问于 2019-04-17 05:59:47
回答 2查看 37关注 0票数 0

当json文档包含一个json字符串作为值时,当插入到json列时总是会得到一个错误。

msyql 5.7.25-0 ubuntu0.18.04.2

带有错误的sql:

代码语言:javascript
运行
复制
INSERT INTO test VALUES(null, '{"a":"avalues","b":"{\"a\":\"avalues\"}"}');

但是下面的sql运行良好。

代码语言:javascript
运行
复制
INSERT INTO test VALUES(null, '{"a":"avalues","b":"{\'a\':\'avalues\'}"}');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-17 17:14:40

要在字符串中插入文字反斜杠,需要使用\\

我把这个写在5.7上:

代码语言:javascript
运行
复制
INSERT INTO test VALUES(null, '{"a":"avalues","b":"{\\"a\\":\\"avalues\\"}"}');

我查询了数据并得到了以下输出:

代码语言:javascript
运行
复制
select json_pretty(data) from test;
+----------------------------------------------------+
| json_pretty(data)                                  |
+----------------------------------------------------+
| {
  "a": "avalues",
  "b": "{\"a\":\"avalues\"}"
} |
+----------------------------------------------------+
1 row in set (0.01 sec)

我不知道为什么要在JSON文档中存储JSON字符串。这太容易出错了,不会是个好主意。

票数 0
EN

Stack Overflow用户

发布于 2019-04-17 12:55:18

你得小心避开单引号。但是,您不需要第一个查询中的\“

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

https://stackoverflow.com/questions/55720838

复制
相关文章

相似问题

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