我有一個 json 列,其中包含一個包含“名稱”屬性的物件陣列。我正在嘗試構建一個查詢,該查詢可以跨所有行從所有物件中提取唯一名稱。
以下是資料的樣子:
[{
"date": "2022-06-14T12:51:24.424Z",
"name": "review_1"
}]
[{
"date": "2022-06-14T12:50:56.454Z",
"name": "review_3"
}, {
"date": "2022-06-14T12:51:10.695Z",
"name": "review_6"
}]
[{
"date": "2022-06-14T12:51:57.997Z",
"name": "review_3"
}]
[{
"date": "2022-06-14T12:52:17.442Z",
"name": "review_1"
}, {
"date": "2022-06-14T12:54:35.239Z",
"name": "review_9
}]
我的方法是將所有名稱作為單獨的行來獲取,這樣我就可以找到不同的。
name || date
review_1 2022-06-14T12:51:24.424Z
review_3 2022-06-14T12:50:56.454Z
review_6 2022-06-14T12:51:10.695Z
review_3 2022-06-14T12:51:57.997Z
review_1 2022-06-14T12:52:17.442Z
review_9 2022-06-14T12:54:35.239Z
我已經嘗試在這篇文章postgres jsonb get values of key from multidimentional array 之后使用jsonb_array_elements ,但它看起來適用于多維陣列,我無法讓它作業。
uj5u.com熱心網友回復:
很難猜出你遇到了什么樣的問題,但函式的使用似乎很簡單。
select elem->>'name' as "name", elem->>'date' as "date"
from my_table
cross join jsonb_array_elements(json_col) as arr(elem);
在Db<>fiddle中測驗它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491946.html
標籤:数组 json PostgreSQL jsonb
