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

如何从process_flows表的JSON字段results中提取step值?

解决PostgreSQL提取TEXT类型嵌套JSON中step值的问题

问题原因

你遇到的错误是因为results字段的类型是TEXT,而PostgreSQL的->/->>JSON操作符仅支持JSON/JSONB类型字段,直接调用会因类型不匹配报错。

解决方案

先将TEXT类型的results字段转换为JSON(或JSONB)类型,再提取目标值:

情况1:step在JSON根节点

如果JSON结构是{"step":3, ...},使用以下查询:

SELECT contact_uuid, (results::json)->>'step' AS step
FROM process_flows;

情况2:step在extra嵌套节点下

如果JSON结构是{"extra": {"step":3, ...}, ...},使用以下查询:

SELECT (results::json)->'extra'->>'step' AS step
FROM process_flows;

替代方法:使用JSON函数

若不习惯用操作符,可通过json_extract_path_text函数实现:

SELECT json_extract_path_text(results::json, 'extra', 'step') AS step
FROM process_flows;

额外优化建议

如果后续频繁查询该字段的JSON内容,建议直接修改字段类型为JSONB,提升查询效率且无需重复转换:

ALTER TABLE process_flows ALTER COLUMN results TYPE jsonb USING results::jsonb;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:27:06