You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中用另一个列表扩展现有列表?

MySQL 直接合并JSON数组列的解决方案

核心问题

你用JSON_ARRAY_APPEND得到的结果不符合预期,是因为这个函数的作用是给数组追加单个元素,它会把你传入的第二个数组当成一个整体字符串塞进去,而不是拆分出元素合并。

可行方案

方案1:用JSON_MERGE_PRESERVE(推荐,MySQL 5.7.22+支持)

这个函数专门用来合并JSON结构,对于数组会直接把元素合并到一起,直接执行更新即可,不用提取数组再处理:

UPDATE 你的表名
SET 目标JSON列 = JSON_MERGE_PRESERVE(目标JSON列, '["item 3", "item 4"]')
WHERE 你的筛选条件;

执行后,原数组会直接扩展成["item 1", "item 2", "item 3", "item 4"],完全符合需求。

方案2:低版本MySQL兼容方案(仅当数组格式规范时用)

如果你的MySQL版本低于5.7.22,不支持JSON_MERGE_PRESERVE,可以用字符串拼接的方式(注意:仅当数组里没有特殊转义字符或]时安全):

UPDATE 你的表名
SET 目标JSON列 = CONCAT(
    LEFT(目标JSON列, LENGTH(目标JSON列)-1),
    ', "item 3", "item 4"',
    ']'
)
WHERE 你的筛选条件;

原理是把原数组的末尾]去掉,加上新元素的字符串,再补回],实现合并。

内容的提问来源于stack exchange,提问作者DMcC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:23:11