首页 > 解决方案 > 在 mysql 中更新/添加 json 数据

问题描述

在这张表中——table我有一列——id它的内容如下:{"id": [1,2,3]}

我的问题是有没有办法将新值附加到此列中 JSON 对象中的数组?例如:

  1. 如果我有这个新值 -4我希望我的id列值变为 -{"id": [1,2,3,4]}
  2. 如果我有这个新值数组 -[4,5,6]我希望我的“id”列值变为 - {"id": [1,2,3,4,5,6]}

知道如何解决这个问题

标签: mysqlarraysjson

解决方案


CREATE TABLE test (value JSON)
SELECT '{"id": [1,2,3]}' value;
SELECT CAST(value AS CHAR) FROM test;
SELECT JSON_MERGE_PRESERVE(value, '{"id": [4]}') FROM test;
SELECT JSON_MERGE_PRESERVE(value, '{"id": [4, 5, 6]}') FROM test;
| CAST(值作为 CHAR) |
| :----------------- |
| {"id": [1, 2, 3]} |

| JSON_MERGE_PRESERVE(value, '{"id": [4]}') |
| :---------------------------------------------------- |
| {"id": [1, 2, 3, 4]} |

| JSON_MERGE_PRESERVE(value, '{"id": [4, 5, 6]}') |
| :------------------------------------------------------------ |
| {"id": [1, 2, 3, 4, 5, 6]} |

db<>在这里摆弄


推荐阅读