[英]How to query inside a postgres db having one column as json value
[英]How to query inside a column containg JSON array in postgres db
我在 postgres 數據庫中有一張桌子。 在該表中,我有一列包含 JSON 數組
{
"DeviceId": "12355",
"Message": {
"Test1": [{"Name": "1"}, {"Result": "Pass"}],
"Test2":[{"Name": "2"}, {"Result": "Fail"}],
"Test3": [{"Name": "3"}, {"Result": "Pass"}],
}
}
我需要在里面查詢,我希望我的 output 采用以下格式。
DeviceID Name Result
"12355" "1" "Pass"
"12355" "2" "Fail"
"12355" "3" "Pass"
以下是我嘗試過的查詢
select DeviceId, Message -> 'Name' as name, Message -> 'Result' as Result from table
結果並不如預期
我是 postgres DB 的新手,任何人都可以幫助我。 提前致謝
SELECT
mydata ->> 'DeviceId' as device_id,
tests.value -> 0 ->> 'Name' as name,
tests.value -> 1 ->> 'Result' as result
FROM mytable,
json_each(mydata -> 'Message') as tests
您可以使用json_each()
將Message
中的所有數據提取到每個元素的一行中。 之后,您可以訪問數組元素。
但是,您的結構似乎設計得不是很好。 代替
"Test1" : [{"Name": "1"}, {"Result": "Pass"}]
你應該想到
"Test1" : {"Name": "1", "Result": "Pass"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.