如何从Postgres的jsonb列中检索多个数据?

帕维尔克

在PostgreSQL数据库中,我有一个名为的json列json内部数据如下所示:

{
    "Version": "0.0.0.1",
    "Items": [
        {
            "Id": "40000000-0000-0000-0000-000000141146",
            "Name": "apple",
            "Score": 64,
            "Value": 1430000
        },
        {
            "Id": "40000000-0000-0000-0000-000000141147",
            "Name": "grapefruit",
            "Score": 58,
            "Value": 1190000
        },
        {
            "Id": "40000000-0000-0000-0000-000000141148",
            "Name": "mango",
            "Score": 41,
            "Value": 170000
        }
    ]
}

我想做的是ScoreItems元素中检索所有数据

我正在尝试使用SQL代码:

select
substring(json ->> 'Items' from '"Score": (\d*),') as score
from vegetables;

但是,它只返回第一个元素而不是3的分数。我试图使用'\ g'标志,该标志应该全局查找所有结果,但是代码无法正常工作。

有人可以建议如何正确执行此操作吗?提前致谢!

阿基列什·米什拉

考虑到json字段的数据类型jsonb则不需要使用子字符串或正则表达式,只需lateral join使用即可jsonb_array_elements为您完成所需的操作。请尝试以下查询。

select x->>'Score' "Score" from vegetables 
cross join lateral jsonb_array_elements(json->'Items') x

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Postgres JSONB列中查询多个数组元素

如何从每行不同列中的行中检索多个数据

如何使用 AJAX 从 PHP 文件中检索多个数据?

如何在Android的Firebase数据库中从uid获取/检索多个数据?

如何使用 Firebase 数据库中的特定字段检索多个数据

oracle查询中如何对多个数据列进行查询?

如何在seaborn barplot中包括多个数据列?

如何从多个数据框列中创建单独的列表?

如何在多个数据框中查找列的位置

如何同时从多个数据框中删除列?

从数据库中检索多个数据

我如何在NativeScript JavaScript中从远程php检索多个数据?

从Firebase检索多个数据

单击列表视图时如何检索多个数据?

如何使用PHP和Javascript从MYSQL检索多个数据?

针对多个值查询 Postgres 中的 jsonb 列

从返回 null 的 firebase 中检索多个数据

如何更改多个数据框的列?

从多个数据框中删除列

在SQL列中输入多个数据

如何在php中检索MongoDB多个数组值?

如何将JSONB列中的数据转换为Rails / Postgres中数百万行的单独列?

Plotly-Dash:如何在字典的多个数据框中的多个列之间进行选择?

如何使用 GORM 在 Postgres 的 JSONB 字段中插入数据

如何根据python中的条件更改多个数据框列的数据类型?

如何使用Featuretools在单个数据框中按列值从多个列创建要素?

如何用多个数据框列的值替换列中的值

如何检查两个数据框(熊猫)中多个列的列值?

如何将一个数据框列与一个列表中的多个数据框合并?