我正在尝试编写一个查询,该查询会将JSON值附加到数据库中的JSON字段。我有一个名为cart的表,其中包含三个字段:id type int
,status type varchar
和items type json.
,所以基本上我正在尝试编写一个查询,该查询将通过ID查找我的购物车,并且它将到目前为止,我的item field
末尾添加了一个项目:
SELECT cart set items= JSON_ARRAY_APPEND(@items, '$', {"item_id": "5"}) where id = 1
我知道这还不够,因为它对我不起作用,所以有人可以帮助我吗?我现在有点卡住。
答案 0 :(得分:2)
实际上,您当前的代码相距不远,除了您需要使用UPDATE
而不是SELECT
。我只能通过使用JSON_OBJECT
来表示要添加到顶级数组的键值对来获得正确的行为。考虑以下更新查询:
UPDATE cart
SET items = JSON_ARRAY_APPEND('[{"item_id": "10"}]', '$', JSON_OBJECT('item_id', '5'))
WHERE id = 1;