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

PostgreSQL中提取JSON字典值为true的键的方法

PostgreSQL JSON列提取值为true的键并拼接成列表

假设你的表名为your_table,存储颜色状态的JSON列名为color_status,可以用以下SQL语句实现需求:

针对JSON类型列:

SELECT string_agg(key, ', ') AS true_colors
FROM your_table,
     json_each(color_status)
WHERE value = 'true'::jsonb;

针对JSONB类型列(推荐,性能更优):

SELECT string_agg(key, ', ') AS true_colors
FROM your_table,
     jsonb_each(color_status)
WHERE value = true;

语句说明:

  • json_each()/jsonb_each():将JSON列的键值对拆分为多行记录,每行包含key(颜色名称)和value(对应的布尔值)
  • WHERE子句:过滤出值为true的记录
  • string_agg():将符合条件的颜色名称用逗号加空格拼接成字符串

这个方案不需要枚举任何颜色,后续新增颜色时无需修改SQL语句,会自动纳入结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:30:41