我将这样的json格式存储在数据库中
{"fooKey": "fooValue", "barKey": "barValue"}
我正在尝试使用JSON_SET运行UPDATE查询,以便添加一些其他内容,所以
UPDATE `table`
SET `dbcol` = JSON_SET(`dbcol`, '$.newitem', 'newvalue')
WHERE `id` = 12;
问题是我想添加一些嵌套元素,所以我的最终结果应该像这样
{"fooKey":"fooValue","barKey":"barValue", "newItem":"newValue", "anotherNewItem":{"subItemKey":"subItemValue", "anotherSubItemKey":"anotherSubItemValue"}}
我该怎么做?
答案 0 :(得分:1)
对于您给出的特定示例,您可以嵌套两个JSON_SET
调用,并使用JSON_OBJECT
创建要插入键anothernewitem
的数据:
UPDATE table
SET dbcol = JSON_SET(JSON_SET(dbcol, '$.newitem', 'newvalue'),
'$.anothernewitem',
JSON_OBJECT('subitemkey', 'subitemvalue', 'anothersubitemkey', 'anothersubitemvalue'))
WHERE id = 12;