小编典典

在JSON列中查询数组的元素

json

最近升级到使用PostgreSQL 9.3.1来利用JSON功能。在我的表中,我有一个json类型列,其结构如下:

{
   "id": "123",
   "name": "foo",
   "emails":[
      {
        "id": "123",
        "address": "somethinghere"
      },
      {
        "id": "456",
        "address": "soemthing"
      }
   ]
}

就问题而言,这只是伪数据。

是否可以根据id在emails数组中查询特定项目?
差不多:“返回电子邮件,其中id = 123)”?


阅读 556

收藏
2020-07-27

共1个答案

小编典典

是的,这是可能的:

SELECT *
FROM   tbl t, json_array_elements(t.json_col->'emails') AS elem
WHERE  elem->>'id' = 123;

tbl是您的表名,json_col是JSON列的名称。

2020-07-27