mysql - 在 mysql 中更新/添加 json 数据
问题描述
在这张表中——table
我有一列——id
它的内容如下:{"id": [1,2,3]}
我的问题是有没有办法将新值附加到此列中 JSON 对象中的数组?例如:
- 如果我有这个新值 -
4
我希望我的id
列值变为 -{"id": [1,2,3,4]}
- 如果我有这个新值数组 -
[4,5,6]
我希望我的“id”列值变为 -{"id": [1,2,3,4,5,6]}
。
知道如何解决这个问题
解决方案
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<>在这里摆弄
推荐阅读
- python - 从文本数据中提取特定数字
- oracle - 如何使用单个控制文件将常见的平面文件数据加载到两个不同的表中?
- r - 将函数输出添加到 data.table 作为新列而不命名它们
- python - 熊猫将字符串转换为列表以使用爆炸
- go - 在 Go 中查找句子中的单词列表
- c# - 在 Entity Framework Core 中保存一对多关系
- c++ - Qt Widget C++ 自动调整为更小的屏幕(见屏幕截图)
- java - 在springboot中为@Scheduled方法设置执行顺序
- r - 在 R 中保留日期格式
- sql - 通过 PowerShell ISE 从 SQL Server 更改 Export-CSV 文件中的语言