在UPDATE中添加嵌套对象参数

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (10)

我有一个像这样存储在数据库中的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"}}

我怎样才能做到这一点?

提问于
用户回答回答于

对于您给出的具体示例,您可以嵌套两个JSON_SET调用,并用于JSON_OBJECT创建要为key插入的数据anothernewitem

UPDATE table
SET dbcol = JSON_SET(JSON_SET(dbcol, '$.newitem', 'newvalue'),
                     '$.anothernewitem', 
                     JSON_OBJECT('subitemkey', 'subitemvalue', 'anothersubitemkey', 'anothersubitemvalue'))
WHERE id = 12;

在dbfiddle上演示

扫码关注云+社区

领取腾讯云代金券