MySQL 追加到 JSON 字段

标签 mysql json

我正在尝试编写一个查询,将 JSON 值附加到数据库中的 JSON 字段。我有一个名为 cart 的表,其中包含三个字段:id type intstatus type varcharitems 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/

相关文章:

php - 一些 Facebook 用户的数据未插入 mysql 数据库

MySQL 未在 MAMP 上启动。什么都不起作用

php - 如何在 PDO 中编写下面的代码

mysql - mysql存储函数中的未知列错误

java - 如何返回JSON格式的信息

c# - 如何重命名和重新映射具有非法 json 字段名称的字段

json - 有什么办法可以将Logstash中的JSON数据展平

java - 防止 Jackson ObjectMapper 自动使用 toString() 格式化复合映射键

android - 如何根据在 ListView 中单击的特定项目向新 Intent 显示所有数据

JSON 和 jq 更新多个值