附加到JSON字段的MySQL

附加到JSON字段的MySQL,mysql,json,Mysql,Json,我试图编写一个查询,将JSON值附加到数据库中的JSON字段。我有一个名为cart的表,里面有三个字段:id-type-int、status-type-varchar和items-type-json。因此,基本上我正在尝试编写一个查询,它将根据id找到我的购物车,并将一个项目添加到我的项目字段的末尾 SELECT cart set items= JSON_ARRAY_APPEND(@items, '$', {"item_id": "5"}) where id = 1 我知道这是不够的,因为它

我试图编写一个查询,将JSON值附加到数据库中的JSON字段。我有一个名为cart的表,里面有三个字段:
id-type-int
status-type-varchar
items-type-json。
因此,基本上我正在尝试编写一个查询,它将根据id找到我的购物车,并将一个项目添加到我的
项目字段的末尾

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

我知道这是不够的,因为它对我不起作用,所以有人能帮我吗?我现在有点困了。

实际上,您当前的代码离您不远了,只是您需要使用
更新
而不是
选择
。我只能通过使用
JSON\u OBJECT
来表示要添加到顶级数组中的键值对,从而获得正确的行为。考虑下面的更新查询:

UPDATE cart
SET items = JSON_ARRAY_APPEND('[{"item_id": "10"}]', '$', JSON_OBJECT('item_id', '5'))
WHERE id = 1;

事实上,您当前的代码并不遥远,除非您需要使用
更新
而不是
选择
。我只能通过使用
JSON\u OBJECT
来表示要添加到顶级数组中的键值对,从而获得正确的行为。考虑下面的更新查询:

UPDATE cart
SET items = JSON_ARRAY_APPEND('[{"item_id": "10"}]', '$', JSON_OBJECT('item_id', '5'))
WHERE id = 1;

您在此处混合选择和更新。您在此处混合选择和更新。