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

MySQL 8中SELECT时如何将JSON数组元素包装为对象

MySQL 8 中JSON字段结构转换实现方案

可以实现这种JSON结构的转换,利用MySQL 8提供的JSON函数组合即可完成,以下是具体实现:

假设你的表名为your_table,存储目标JSON的字段名为json_column,执行以下SQL查询就能得到转换后的结构:

SELECT 
  JSON_OBJECT(
    'images',
    JSON_ARRAYAGG(
      JSON_OBJECT('image', img.element)
    )
  ) AS transformed_json
FROM your_table,
     JSON_TABLE(
       json_column->'$.images',
       '$[*]' COLUMNS (element JSON PATH '$')
     ) AS img
GROUP BY your_table.id; -- 替换为你的表主键或唯一标识字段

关键函数说明

  • JSON_TABLE:将images数组拆分为多行记录,每行对应数组中的一个原始url对象,方便逐个处理。
  • JSON_OBJECT:将每个原始对象包装到image键下,构造出目标数组元素的结构。
  • JSON_ARRAYAGG:将处理后的单个对象重新聚合为数组,还原成images对应的数组结构。
  • GROUP BY:确保每个原表记录对应生成一条转换后的JSON结果,避免因数组拆分导致的多行输出。

如果你的表中仅有单条记录,或者不需要按记录分组,也可以去掉GROUP BY子句,但保留分组更适配多记录场景。

内容的提问来源于stack exchange,提问作者sergei.sss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:55:26