【问题标题】:Postgres parse array/jsonPostgres 解析数组/json
【发布时间】:2021-02-22 16:38:56
【问题描述】:

我在表 src 中有以下行,其中一个属性是 JSON 数组。

属性:

[{"key": "Tag", "value": "myTagValue"}, {"key": "Brand", "value": "myBrandValue"}]
[{"key": "Tag", "value": "myTagValue"}, {"key": "Brand", "value": "myBrandOtherValue"}, {"key": "Test", "value": "123"}]

如何选择Brand

预期输出:

Brand
-----
myBrandValue
myBrandOtherValue

(2 rows affected)

我在考虑使用json_to_recordset(json) 函数,但属性可以有N 不同的值(jsons)。

【问题讨论】:

  • 这是一个 JSON 数组 json[] 还是一个 JSON 数组?

标签: arrays json postgresql


【解决方案1】:

demo:db<>fiddle

SELECT
    elems.value ->> 'value'              -- 3
FROM mytable,
    jsonb_array_elements(mydata) elems   -- 1 
WHERE elems.value ->> 'key' = 'Brand'    -- 2
  1. 将所有数组元素提取到每个 JSON 元素的一行中
  2. 通过key = Brand过滤JSON元素
  3. 返回value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多