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

如何基于PostgreSQL内部JSON元素值过滤查询结果?

解决方案

你可以在现有查询基础上,通过json_each返回的value字段访问include属性,添加过滤条件筛选符合要求的记录:

最终查询语句

SELECT 
  t.id,
  je AS tables
FROM 
  myTable t,
  json_each(t.values::json#>'{something, insideSomething, tables}') je
WHERE 
  (je.value->>'include')::boolean = true;

说明

  1. json_each会将tables下的每个键值对拆分为单独行,返回的行包含key(表名,如tableA)和value(对应包含include属性的JSON对象)两个字段
  2. 通过je.value->>'include'提取include的字符串值,转为布尔类型后判断是否等于true,从而过滤出符合条件的表
  3. 如果你的values字段本身就是json类型,可以去掉::json转换,直接使用t.values#>'{something, insideSomething, tables}'

执行该查询后,就能得到目标结果:仅保留include为true的表记录,输出对应的id和表信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:50:06