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

PostgreSQL中如何从text类型列的JSON数组提取fd字段?

提取PostgreSQL text列中JSON数组的fd字段

因为你的列是text类型,首先需要将其转换为JSON类型,再解析数组提取目标字段,以下是两种常用实现方式:

方式1:将每个fd值单独返回(每行一个fd)

假设你的表名为your_table,存储JSON数组的text列名为data_col,可以使用如下SQL:

SELECT (json_array_elements(data_col::json)->>'fd')::integer AS fd
FROM your_table;
  • data_col::json:将text类型的列转换为JSON类型,让PostgreSQL能识别其结构
  • json_array_elements():把JSON数组拆分成单个的JSON对象,每行返回一个对象
  • ->>'fd':提取JSON对象中fd字段的文本值,::integer是将文本转为整数类型(如果不需要数值类型可以去掉)

方式2:将所有fd值合并为一个数组返回

如果希望把同一行的所有fd值合并成一个数组结果,使用聚合函数json_agg:

SELECT json_agg((json_array_elements(data_col::json)->>'fd')::integer) AS fd_list
FROM your_table;

注意事项

  • 如果text列中存在非合法JSON格式的内容,查询会报错,需确保数据格式符合JSON规范
  • 若列中存在NULL值,可添加WHERE data_col IS NOT NULL过滤无效数据
  • 如果你的PostgreSQL版本支持,也可以使用jsonb_array_elements替代json_array_elements,jsonb类型在处理复杂JSON时性能更优

内容的提问来源于stack exchange,提问作者Kaushik .p

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:20:42