从postgres中的json结构查询数组中的最后一个元素

时间:2014-08-06 21:46:07

标签: json postgresql

我们说我们有以下

{ "items" :
    [
        {"id": 1},
        {"id": 2},
        {"id": 3}
    ]
}

如何从给定json结构中的数组中获取最后一个元素?获得第一个似乎并不复杂

SELECT t.column->'items'->0 AS elem
FROM   tbl t
WHERE  other_column = 20;

提前致谢!

2 个答案:

答案 0 :(得分:15)

这样的事情应该得到你的例子的最后一个元素:

SELECT t.col->'items'->(json_array_length(t.col->'items')-1)
FROM   tbl t

SQLFiddle显示了这一点......

答案 1 :(得分:2)

在Postgres 9.5+中,现在可以使用负下标来实现这一目标。

对于上述情况,获取最后一个元素可以通过以下方式实现:

SELECT t.column->'items'->-1 AS elem
FROM   tbl t
WHERE  other_column = 20;