我正在嘗試用於處理JSON列的mysql 5.7的新API。我test
列如下:mysql 5.7將鍵/值附加到嵌套的json對象
{"foo":{"efg":1}, "bar":{"abc":0}}
我想要做的就是追加到的關鍵之一,例如foo
所以它會導致"foo":{"efg":1, "klm":2}
。我已經試過到目前爲止以下their documentation:
mysql> select json_insert(test, '$.foo', 10, '$.foo.klm', 2) from table1
where name='Joe';
,做什麼是替代"efg":1
,結果是"foo":{"klm":2}
。
mysql> select json_array_append(test, '$.foo', '{"klm":2}') from table1 where
name="Joe';
上面一行明顯的轉換foo
到一個數組"foo":[{"efg":1}, {"klm":2}]
,這不是我想要的。
我試着結合在一起的查詢:
mysql> select json_insert(test, '$.foo', 10, '$.foo',
select json_merge(select json_extract(test, '$.foo') from table1
where name="Joe"), '{"klm":2}') from table1 where name="Joe";
這只是給了我一個語法錯誤near select json_extract(test, '$.foo')
。
任何意見將不勝感激。
@JoachimIsaksson期望的結果應該是'{ 「foo」 的:{ 「EFG」:1, 「KLM」:2},「欄 「:{」 ABC「:0}}'。他們的文檔主要用於修改數組,但我想將所有內容都保存爲Object。 – denikov
我使用'json_insert'得到了確切的結果,(或者只是'從table1中選擇json_insert(test,'$ .foo.klm',2),其中name ='Joe';''「efg」:1'不會 –
@JoachimIsaksson我不知道問題出在哪兒,我發出了一些參數,就像在你的評論中一樣,它仍然替換了''foo''Object的所有內容。 – denikov