如何用PostgreSQL查询Jsonb数据?
How to query Jsonb data with PostgreSQL?
我正在通过基本 UUID 和一些概念处理这些数据来创建一些视图,我设法获得了我对第一级的预期,但在尝试获取第二级数据时遇到了问题。
我在 tiledata 列中工作的 table 是一些我想访问的嵌套数据,这是
当我运行查询
SELECT tileid, nodegroupid,
tiledata ->'34cfea8a-c2c0-11ea-9026-02e7594ce0a0' AS ACTOR
FROM tiles
WHERE tiledata -> '34cfea8a-c2c0-11ea-9026-02e7594ce0a0' IS NOT NULL;
我得到这个
我如何从这个嵌套数据中获取 resourceId,
您可以使用 jsonb_array_elements
函数将 JSONB 数组的每个元素提取为新的 JSONB 值,您可以在该值上使用任何其他 JSONB 函数或运算符。
需要注意的是,每个数组值都会在记录集中生成一个新行。
你的情况,你可以试试:
SELECT tileid, nodegroupid,
jsonb_array_elements(tiledata ->'34cfea8a-c2c0-11ea-9026-02e7594ce0a0')->'resourceID'
FROM tiles
WHERE tiledata -> '34cfea8a-c2c0-11ea-9026-02e7594ce0a0' IS NOT NULL;
有关简单示例,请参阅 this fiddle。
有关详细信息,请参阅 the doc。
我正在通过基本 UUID 和一些概念处理这些数据来创建一些视图,我设法获得了我对第一级的预期,但在尝试获取第二级数据时遇到了问题。 我在 tiledata 列中工作的 table 是一些我想访问的嵌套数据,这是
当我运行查询
SELECT tileid, nodegroupid,
tiledata ->'34cfea8a-c2c0-11ea-9026-02e7594ce0a0' AS ACTOR
FROM tiles
WHERE tiledata -> '34cfea8a-c2c0-11ea-9026-02e7594ce0a0' IS NOT NULL;
我得到这个
我如何从这个嵌套数据中获取 resourceId,
您可以使用 jsonb_array_elements
函数将 JSONB 数组的每个元素提取为新的 JSONB 值,您可以在该值上使用任何其他 JSONB 函数或运算符。
需要注意的是,每个数组值都会在记录集中生成一个新行。
你的情况,你可以试试:
SELECT tileid, nodegroupid,
jsonb_array_elements(tiledata ->'34cfea8a-c2c0-11ea-9026-02e7594ce0a0')->'resourceID'
FROM tiles
WHERE tiledata -> '34cfea8a-c2c0-11ea-9026-02e7594ce0a0' IS NOT NULL;
有关简单示例,请参阅 this fiddle。
有关详细信息,请参阅 the doc。