在PostgreSQL中按数组从json / jsonb列中查找数据

我有一列包含json / jsonb数据。数据库是postgresql。

列数据示例

{"postId": "p522","groupId": "g11",...}
{"postId": "p5ds","groupId": "g234",...}
{"postId": "p5cz","groupId": "g597",...}

我正在尝试从json / jsonb列中搜索为数据数组。

什么是最好的或正确的方法?

SELECT * FROM column_name
WHERE 
-- How i can do,similar to this? 
data #> '{groupId}' IN ('g11','g597')

-- this works but only for single. I am trying to find by array. 
meta @> '{"groupId": "g597"}' 
engkeluu 回答:在PostgreSQL中按数组从json / jsonb列中查找数据

如果您想要类似于?|的内容,则可以使用运算符IN。它适用于jsonb类型。

SELECT * FROM column_name
WHERE meta -> 'groupId' ?| array['g11','g597']

More info about json/jsonb operators

,

已解决:

SELECT * FROM column_name 
WHERE meta ->> 'groupId' IN ('g11','g597')
本文链接:https://www.f2er.com/3136296.html

大家都在问