postgresql 根据属性值选择单个JSON元素

9ceoxa92  于 2023-03-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(121)

我在jsonb专栏中有以下内容:

[
  {
    "Value": "ABC",
    "PropertyTypeId": 1
  },
  {
    "Value": "CDE",
    "PropertyTypeId": 2
  },
  {
    "Value": "FGE",
    "PropertyTypeId": 3
  }
]

我想得到一个元素的值,比如属性类型为2的元素。
我已经得到了如下关闭:

SELECT
jsonb_array_elements(tbl.jsonb_column)@>'{"PropertyTypeId": 2}'
FROM tbl

上面只是告诉我,无论json是否包含"PropertyTypeId": 2,它都会将行复制到3行,我只需要一行中的列包含"CDE"

5vf7fwbs

5vf7fwbs1#

您可以使用JSON路径查询:

select jsonb_path_query_first(other_properties, '$[*] ? (@.PropertyTypeId == 2)')
from the_table

相关问题