最近升级到使用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: