我正在尝试编写一个查询,将 JSON 值附加到数据库中的 JSON 字段。我有一个名为 cart 的表,其中包含三个字段:id type int
、status type varchar
和 items type json。
所以基本上我正在尝试编写一个查询,它将通过 id 找到我的购物车,并将一个项目添加到我的 item 字段
的末尾,到目前为止我所拥有的是这样的:
SELECT cart set items= JSON_ARRAY_APPEND(@items, '$', {"item_id": "5"}) where id = 1
我知道这还不够,因为它对我不起作用,所以有人可以帮助我吗?我现在有点陷入困境。
最佳答案
实际上,您当前的代码并不遥远,只是您需要使用 UPDATE
而不是 SELECT
。我只能通过使用 JSON_OBJECT 来表示要添加到顶级数组的键值对来获得正确的行为。考虑以下更新查询:
UPDATE cart
SET items = JSON_ARRAY_APPEND('[{"item_id": "10"}]', '$', JSON_OBJECT('item_id', '5'))
WHERE id = 1;
Demo
关于MySQL 追加到 JSON 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54906495/