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

MySQL JSON列嵌套数组筛选:提取第9元素为指定值的子数组

MySQL提取JSON嵌套数组中符合条件的子数组方案

假设你的表名为your_table,存储JSON数据的列名为json_column,且仅存在id=1的一行数据,可以使用以下SQL语句实现需求:

SELECT JSON_ARRAYAGG(j.sub_array) AS filtered_array
FROM your_table t,
     JSON_TABLE(t.json_column,
                '$[*]' COLUMNS (sub_array JSON PATH '$')) j
WHERE t.id = 1
  AND JSON_UNQUOTE(JSON_EXTRACT(j.sub_array, '$[8]')) = '1';

关键说明:

  • JSON_TABLE用于将外层JSON数组拆分为多行,每行对应一个子数组(仅MySQL 8.0及以上版本支持该函数)
  • $[8]对应子数组的第9个元素(MySQL JSON数组索引从0开始计数)
  • 若目标元素是数值类型,可省略JSON_UNQUOTE,直接用JSON_EXTRACT(j.sub_array, '$[8]') = 1进行判断
  • JSON_ARRAYAGG将筛选后的子数组重新聚合成一个新的JSON数组

内容的提问来源于stack exchange,提问作者Özgür AKSU

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:05:04