SELECT / 查询 "into" JSON 数组
SELECT / Querying "into" JSON arrays
我有一个 PostgreSQL 9.4.5 数据库。有一个 table itemtable
和一个名为 data
的 JSONB 列,其中包含这样的信息集(为简洁起见,删除了很多内容):
{ "items": [
{ "id": 158597 },
{ "id": 156300 },
(...)
] }
现在,我想获得这些项目集中所有 id
的列表 - 非正式的说法可能是 SELECT id FROM items FROM data FROM itemtable
。我只设法使用子查询来做到这一点,这显然是次优的:
SELECT idlist->>'id' FROM (
SELECT json_array_elements(data::json->'items') AS idlist FROM itemtable
) AS necessary_subquery_name
我怎样才能不那么复杂?
请注意,我需要 运行 在 SquirrelSQL 中执行此操作,因此需要 ::json
转换。
哦,算了,今天我一定是错过了咖啡。显然是:
SELECT json_array_elements(data::json->'items')->>'id' FROM itemtable
我有一个 PostgreSQL 9.4.5 数据库。有一个 table itemtable
和一个名为 data
的 JSONB 列,其中包含这样的信息集(为简洁起见,删除了很多内容):
{ "items": [
{ "id": 158597 },
{ "id": 156300 },
(...)
] }
现在,我想获得这些项目集中所有 id
的列表 - 非正式的说法可能是 SELECT id FROM items FROM data FROM itemtable
。我只设法使用子查询来做到这一点,这显然是次优的:
SELECT idlist->>'id' FROM (
SELECT json_array_elements(data::json->'items') AS idlist FROM itemtable
) AS necessary_subquery_name
我怎样才能不那么复杂?
请注意,我需要 运行 在 SquirrelSQL 中执行此操作,因此需要 ::json
转换。
哦,算了,今天我一定是错过了咖啡。显然是:
SELECT json_array_elements(data::json->'items')->>'id' FROM itemtable