我正在嘗試使用 Postgres 在 JSON 中進行搜索。JSON 看起來像這樣:
"some key": {
"city": "Chicago",
"id": "",
"color": "",
"size": ""
},
"a different key": {
"city": "San Francisco",
"id": null,
"shape": "",
"height": ""
}
我不知道第一級鍵的名稱是什么(這就是為什么我在上面的示例中稱它們為“某個鍵”和“另一個鍵”的原因)。我知道他們可以彼此不同。
我想提取上面示例中“城市”鍵、芝加哥和舊金山的所有值。我想它是這樣的,但這個沒有用:
(table_name.row_name-> * ->> 'city') as city_name
(我知道城市總是在 JSON 上的第二級,但可以出現多次)
uj5u.com熱心網友回復:
您可以遍歷鍵:
select t.some_column,
x.item -> 'city' as city_name
from the_table t
cross join jsonb_each(t.the_column) as x(item)
這會將每個城市作為新行與該表的其他列一起回傳。
以上假設您的列被定義為jsonb(應該是)。如果不是,則需要json_each()改用
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383291.html
標籤:PostgreSQL的
