MySQL附加到JSON字段

时间:2019-02-27 13:21:15

标签: mysql json

我正在尝试编写一个查询,该查询会将JSON值附加到数据库中的JSON字段。我有一个名为cart的表,其中包含三个字段:id type intstatus type varcharitems type json.,所以基本上我正在尝试编写一个查询,该查询将通过ID查找我的购物车,并且它将到目前为止,我的item field末尾添加了一个项目:

SELECT  cart set items= JSON_ARRAY_APPEND(@items, '$', {"item_id": "5"}) where id = 1

我知道这还不够,因为它对我不起作用,所以有人可以帮助我吗?我现在有点卡住。

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;

Demo