簡體   English   中英

選擇對 Postgres 數組列的 JSON 操作?

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

我已經環顧了ANYUNNEST但並不完全清楚如何實現這一點,因為您不能在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.

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