簡體   English   中英

在 Postgresql 中按數組從 json/jsonb 列中查找數據

[英]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']

有關 json/jsonb 運算符的更多信息

解決了:

SELECT * FROM column_name 
WHERE meta ->> 'groupId' IN ('g11', 'g597')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM