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

PostgreSQL查询JSON/JSONB字段:提取符合条件的name值

PostgreSQL提取JSON/JSONB中name字段的查询语句

假设存在表jira_components,其中component_data字段为JSONB类型(JSON类型操作逻辑一致,JSONB性能更优),存储的JSON数据结构如下:

[
{
"id": "234",
"name": "JCR",
"self": "https://jira.abc.io/jira/rest/api/2/component/234"
},
{
"id": "123",
"name": "React",
"self": "https://jira.abc.io/jira/rest/api/2/component/123"
}
]

1. 提取所有name字段的值

使用jsonb_array_elements展开JSON数组,再通过->>操作符提取文本类型的name字段值:

SELECT elem->>'name' AS component_name
FROM jira_components,
     jsonb_array_elements(component_data) AS elem;

2. 带WHERE条件的name字段匹配查询

精确匹配

查询name等于指定值的条目,同时可提取其他关联字段:

SELECT elem->>'name' AS component_name,
       elem->>'id' AS component_id,
       elem->>'self' AS component_url
FROM jira_components,
     jsonb_array_elements(component_data) AS elem
WHERE elem->>'name' = 'React';

模糊匹配

查询name包含指定字符串的条目:

SELECT elem->>'name' AS component_name,
       elem->>'id' AS component_id
FROM jira_components,
     jsonb_array_elements(component_data) AS elem
WHERE elem->>'name' LIKE '%R%';

注:如果字段类型为JSON,只需将jsonb_array_elements替换为json_array_elements即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:07:31