簡體   English   中英

插入到json列時出錯,而文檔在mysql 5.7中包含一個json_string作為值

[英]get a error while insert into json column while the document contains a json_string as value in mysql 5.7

當json文檔包含json字符串作為值時插入到json列時總是會出錯

msyql 5.7.25-0ubuntu0.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\'}"}');

你必須小心逃避單引號。 但是在第一個查詢中你不需要\\“

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

我讓這個工作在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字符串。 這太容易出錯,不是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM