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

PostgreSQL JSON多条件查询求助:如何添加嵌套字段筛选条件

PostgreSQL嵌套JSON字段查询修正方案

你的查询写法存在几个关键问题:

  • desc是PostgreSQL保留关键字,作为JSON键名必须用单引号包裹
  • 访问嵌套JSON对象时,需先用->获取内层对象,再用->>提取字段的文本值
  • 原JSON中Service的值是字符串类型的"123",条件匹配时要对应类型,或转为数值比较

正确查询语句(字符串匹配)

SELECT * FROM dbname 
WHERE 
  tresc::json->>'user' LIKE '%login%'
  AND tresc::json->'desc'->>'Service' = '123'
ORDER BY id asc;

正确查询语句(数值匹配,若需数值比较)

SELECT * FROM dbname 
WHERE 
  tresc::json->>'user' LIKE '%login%'
  AND (tresc::json->'desc'->>'Service')::int = 123
ORDER BY id asc;

补充:若字段为jsonb类型(推荐使用)

可使用更简洁的包含查询操作符@>:

SELECT * FROM dbname 
WHERE 
  tresc->>'user' LIKE '%login%'
  AND tresc @> '{"desc": {"Service": "123"}}'::jsonb
ORDER BY id asc;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:55:56