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

如何在MySQL中向JSON数组添加元素?以People表liked_ids为例

在MySQL中使用JSON_ARRAY_APPEND向JSON数组添加元素的正确方法

我完全懂你现在的困惑——JSON函数的路径语法一开始确实容易懵,咱们结合你的People表场景,一步步把JSON_ARRAY_APPEND的用法说清楚。

首先先搞懂这个函数的核心逻辑:它的作用是在指定的JSON路径位置,把新元素追加到数组末尾,语法是这样的:

JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ...)
  • json_doc:就是你要操作的JSON字段(这里就是People表的liked_ids)
  • path:指定要修改的数组位置,最常用的$代表整个JSON根元素(也就是你的liked_ids数组本身)
  • val:要添加的元素,数值直接写,字符串要加引号

针对你的场景的具体用法

1. 给所有行的liked_ids数组添加数值5

如果要批量更新表中所有记录的liked_ids,直接用这条SQL:

UPDATE People
SET liked_ids = JSON_ARRAY_APPEND(liked_ids, '$', 5);

这里的$告诉MySQL:把5追加到liked_ids这个数组的最后面。

2. 给特定行的liked_ids数组添加数值5

如果只需要更新某一行(比如id为1的用户),加上WHERE条件就行:

UPDATE People
SET liked_ids = JSON_ARRAY_APPEND(liked_ids, '$', 5)
WHERE id = 1; -- 替换成你实际的筛选条件,比如username = '张三'

几个实用的注意点

  • 空值处理:如果liked_ids原本是NULL,执行这条语句后会自动变成[5],不用提前初始化数组
  • 添加不同类型的元素:如果要加字符串,记得用单引号包裹,比如JSON_ARRAY_APPEND(liked_ids, '$', 'apple')
  • 嵌套数组的情况:如果你的liked_ids是嵌套数组(比如[[1,2],[3,4]]),可以用更精准的路径,比如'$[0]'表示给第一个子数组追加元素,执行后会变成[[1,2,5],[3,4]],不过你的场景用$就足够了

验证结果

执行完更新后,你可以用这条SQL确认是否成功:

SELECT liked_ids FROM People WHERE id = 1;

比如原来的liked_ids是[1,2,3],现在会返回[1,2,3,5]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:15:58