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

PostgreSQL中如何遍历完整JSON数组并提取目标字段值?

你之前调用json_each失败的核心原因是该函数默认适配JSON对象的键值对遍历,处理JSON数组只要调整调用方式,或使用对应数据库的数组展开函数即可,不同主流数据库的实现如下:

SQLite 实现

直接将JSON数组作为参数传入json_each即可自动展开数组元素:

SELECT 
  json_extract(value, '$.uniqid') AS uniqid,
  json_extract(value, '$.time') AS time
FROM json_each('[{"uniqid": "LL.NEW", "time": 1}, {"uniqid": "LL.MODIFY", "time": 3}]')

PostgreSQL 实现

使用jsonb_array_elements(JSON类型则用json_array_elements)展开数组:

SELECT 
  elem->>'uniqid' AS uniqid,
  (elem->>'time')::int AS time
FROM jsonb_array_elements('[{"uniqid": "LL.NEW", "time": 1}, {"uniqid": "LL.MODIFY", "time": 3}]'::jsonb) AS elem;

MySQL 实现

使用JSON_TABLE函数将数组解析为结构化行数据:

SELECT *
FROM JSON_TABLE(
  '[{"uniqid": "LL.NEW", "time": 1}, {"uniqid": "LL.MODIFY", "time": 3}]',
  '$[*]' COLUMNS (
    uniqid VARCHAR(20) PATH '$.uniqid',
    time INT PATH '$.time'
  )
) AS jt;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:30:05