[英]Find data from json/jsonb column by array in Postgresql
我有一列包含 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"}'
您可以使用運算符?|
如果你想要類似於IN
的東西。 它適用於jsonb
類型。
SELECT * FROM column_name
WHERE meta -> 'groupId' ?| array['g11', 'g597']
解決了:
SELECT * FROM column_name
WHERE meta ->> 'groupId' IN ('g11', 'g597')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.