当前位置: 首页 > 面试题库 >

在JSON列中查询数组的元素

魏翰
2023-03-14
问题内容

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

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

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

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


问题答案:

是的,这是可能的:

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

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



 类似资料:
  • 最近升级到使用PostgreSQL 9.3.1来利用JSON功能。在我的表中,我有一个json类型列,其结构如下: 就问题而言,这只是虚拟数据。 是否可以根据id查询电子邮件数组中的特定项目 差不多:“返回id=123的电子邮件)”?

  • 我尝试使用函数JSON\u array\u elements()卸载JSON数组,并尝试使用JSON\u array\u length(field\u name)计算数组的元素,但没有成功。我使用的是PostgreSQL 9.4.5。 我想查询元素“name”的结果,这是json类型数组field crew | json[]上保存的数据。

  • 问题内容: 我正在尝试测试PostgreSQL 9.3中的类型。 我在名为的表中有一个列。JSON看起来像这样: 我想查询表中所有与“对象”数组中“ src”值匹配的报告。例如,是否可以在数据库中查询所有匹配的报告?我成功地写了一个查询,可以匹配: 但是由于具有一组值,所以我似乎无法编写出有效的东西。是否可以在数据库中查询所有匹配的报告?我已经查看了这些来源,但仍然无法了解: http://www

  • 我试图测试PostgreSQL 9.3中的类型。 我在一个名为的表中有一个名为的列。JSON如下所示: 我想查询表中与'objects'数组中的'src'值匹配的所有报告。例如,是否可以查询数据库中匹配的所有报告?我成功地编写了一个可以匹配的查询: null 我不是SQL专家,所以我不知道我做错了什么。

  • 问题内容: 我在postgres json列中有一些类似于下面的json的json。我正在尝试查询它以识别一些输入错误的数据。我基本上是在寻找房屋描述与房屋号码相同的地址。我不太想办法。 我写了这个sql,它将找到数据匹配的地方: 显然,这仅适用于第一所学校的第一地址。有没有办法查询每所学校的所有地址? 问题答案: 在横向联接中使用的次数与要比较的json数组的深度一样多:

  • 我有一个如下所示的数据库表: 我想使用PostgreSQL的JSON查询功能来选择JSON\u数组中的某些子字典,例如字典中的a:1。 输出应为 以下查询适用于每个数组中的第一个元素,但我想检查所有元素: