PostgreSQL中如何从JSON数组字段查询指定customerName1的对象
PostgreSQL 查询JSON数组中匹配的单个对象
你需要从CustInfo表的custjson列(存储JSON数组)中,仅返回customerName1为"Jacob"的单个JSON对象。原SQL会返回整行数据而非目标JSON元素,可通过以下SQL实现需求:
SELECT ej.value FROM CustInfo e CROSS JOIN jsonb_array_elements(e.custjson) ej WHERE ej.value ->> 'customerName1' = 'Jacob';
说明:
jsonb_array_elements用于将JSON数组拆分为单个JSON对象行- 直接筛选
ej.value中customerName1精确匹配"Jacob"的记录,返回该匹配的JSON对象 - 若需模糊匹配(如包含"Jacob"),可将
=替换为LIKE '%Jacob%'
执行结果:
{
"startdt": "10/14/2021",
"enddt": "10/14/2022",
"customerName1": "Jacob",
"customerName2": "NJ"
}
内容的提问来源于stack exchange,提问作者Jyoti Panjwani
相关产品推荐
相关产品推荐

