[英]SELECT on JSON operations of Postgres array column?
我有一個jsonb[]
類型的列(一個jsonb
對象的 Postgres 數組),我想對至少一個對象滿足條件的行執行 SELECT。 就像是:
-- Schema would be something like
mytable (
id UUID PRIMARY KEY,
col2 jsonb[] NOT NULL
);
-- Query I'd like to run
SELECT
id,
x->>'field1' AS field1
FROM
mytable
WHERE
x->>'field2' = 'user' -- for any x in the array stored in col2
我已經環顧了ANY
和UNNEST
但並不完全清楚如何實現這一點,因為您不能在WHERE
子句中運行unnest
。 我也不知道如何指定我想要匹配對象中的field1
。
我是否需要一個WITH
擴展值的WITH
表來連接? 我將如何實現這一目標並保留其他列的id
?
謝謝!
您需要取消嵌套數組,然后才能訪問每個 json 值
SELECT t.id,
c.x ->> 'field1' AS field1
FROM mytable t
cross join unnest(col2) as c(x)
WHERE c.x ->> 'field2' = 'user'
這將為數組中的每個 json 值返回一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.