最近升级到使用Postgresql 9.3.1来利用JSON功能。在我的表中,我有一个json类型的列,其结构如下:
{ "id": "123","name": "foo","emails":[ { "id": "123","address": "somethinghere" },{ "id": "456","address": "soemthing" } ] }
这是为了问题的目的只是虚拟数据。
解决方法
是的,这是可能的:
SELECT * FROM tbl t,json_array_elements(t.json_col->'emails') AS elem WHERE elem->>'id' = 123;
tbl是您的表名,json_col是JSON列的名称。
这个相关答案的更多细节:
> How do I query using fields inside the new PostgreSQL JSON datatype?
更多关于这个相关答案的最后一段隐含的CROSS JOIN LATERAL: