当json文档包含一个json字符串作为值时,当插入到json列时总是会得到一个错误。
msyql 5.7.25-0 ubuntu0.18.04.2
带有错误的sql:
INSERT INTO test VALUES(null, '{"a":"avalues","b":"{\"a\":\"avalues\"}"}');但是下面的sql运行良好。
INSERT INTO test VALUES(null, '{"a":"avalues","b":"{\'a\':\'avalues\'}"}');发布于 2019-04-17 17:14:40
要在字符串中插入文字反斜杠,需要使用\\。
我把这个写在5.7上:
INSERT INTO test VALUES(null, '{"a":"avalues","b":"{\\"a\\":\\"avalues\\"}"}');我查询了数据并得到了以下输出:
select json_pretty(data) from test;
+----------------------------------------------------+
| json_pretty(data) |
+----------------------------------------------------+
| {
"a": "avalues",
"b": "{\"a\":\"avalues\"}"
} |
+----------------------------------------------------+
1 row in set (0.01 sec)我不知道为什么要在JSON文档中存储JSON字符串。这太容易出错了,不会是个好主意。
发布于 2019-04-17 12:55:18
你得小心避开单引号。但是,您不需要第一个查询中的\“
https://stackoverflow.com/questions/55720838
复制相似问题