查询jsonb PSQL中的数组元素



我有一个JSON节点,我必须写一个PSQL查询,我的表模式名称(字符串),tagValues(jsonb)。tagValue数据示例如下

Name_TagsTable

uid |       name(String)|          tagValues(jsonb)
-----+-------------------+-----------------------------
1 |     myName        |    { "tags": ["xyz","pqr","xyp"]}  

我需要一个查询,返回搜索的所有行"pq">

表的tagValues
select * from Name_TagsTable where tagValues->tags contains %pq%  

您可以使用LIKE运算符并将JSONB值转换为字符串类型,例如

SELECT *
FROM Name_TagsTable
WHERE (tagValues->'tags')::TEXT LIKE '%pq%' 

您需要打开元素的嵌套,然后您可以在应用LIKE条件的WHERE条件中使用它。

select nt.*
from name_tagstable nt
where exists (select *
from jsonb_array_elements_text(tagvalue -> 'tags') as a(tag)
where a.tag like '%pg%');

相关内容

  • 没有找到相关文章

最新更新