はい、それは可能です:
SELECT *
FROM tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE elem->>'id' = 123;
tbl
テーブル名であるjson_col
JSON列の名前です。
この関連する回答の詳細:
- 新しいPostgreSQLJSONデータ型内のフィールドを使用してクエリを実行するにはどうすればよいですか?
暗黙のCROSS JOIN LATERAL
の詳細 この関連する回答の最後の段落:
- 要素番号付きのPostgreSQLunnest()
この種のクエリをサポートするためのインデックス:
- JSON配列内の要素を検索するためのインデックス