私はこれをかなり検索し、依然として答えられません。私はPostgreSQLを使用しています。下の例では、列名は「セクション」、列タイプはjson []です。PostgreSQLのJson配列から要素を取得する方法
私の列は、データベースに次のようになります。
sections
[{"name" : "section1",
"attributes": [{"attrkey1": "value1",
"attrkey2": "value2"},
{"attrkey3": "value3",
"attrkey4": "value4"}]
},
{"name" : "section2",
"attributes": [{"attrkey3": "value5",
"attrkey6": "value6"},
{"attrkey1": "value7",
"attrkey8": "value8"}]
}]
それはJSON配列だと私は私の結果に「attrkey3」を取得したいです。 Jsonから特定のキーを取得するには、私はjson_extract_path_text(json_column, 'json_property')
を使用しても問題ありません。しかし、私はjson []からいくつかの財産を得る方法がわかりません。
私が上記の例についてお話した場合、私の結果に表示されるプロパティ "attrkey2"の値を取得したいと思います。配列なので、通常とは異なる動作をする可能性があります。私の配列のすべての値は別の行として機能するので、サブクエリを書く必要があるかもしれませんが、それを行う方法はわかりません。
また、インデックスを静的に書き込むことはできず、特定のインデックスからjson要素のプロパティを取得することもできません。私のクエリは動的に生成されるので、json配列の中にいくつの要素があるかはわかりません。
私はいくつかの静的な例を見ましたが、私の場合はそれを実装する方法がわかりません。誰かがクエリでこれを行う方法を教えてもらえますか?
'' json [] '(PostgreSQLの' json'値の配列)型の列、 'JSON'型の列(あなたの例のような)があるとは思いません。どうか明らかにしてください。 – pozs