我有以下查詢:
SELECT * FROM post p
, jsonb_array_elements(p.meta #> '{tags, tag}') d
WHERE d->>'tag' LIKE '%mytag%';
沒有回傳任何結果,我在 post 表中有一個物件,如下所示:

我不確定為什么會失敗,我的理解是 jsonb_array_elements 將陣列變平,通過選擇 {tags, tag} 它會得到標簽字串
uj5u.com熱心網友回復:
嵌套陣列的路徑是meta #> '{tags}',不是meta #> '{tags, tag}',所以這應該作業
select *
from
post p,
jsonb_array_elements(p.meta #> '{tags}') d
where d->>'tag' like '%mytag%';
-- or simpler
select *
from
post p,
jsonb_array_elements(p.meta -> 'tags') d
where d->>'tag' like '%mytag%';
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/433984.html
標籤:sql json PostgreSQL jsonb
上一篇:如何測驗列順序在PostgreSQL索引中的重要性?
下一篇:SQL-如何創建鏈接表?
