【发布时间】:2020-07-16 20:50:51
【问题描述】:
鉴于下表,我想提取 id 值 WHERE 60 显示为 status 的第二个元素。我看到它是一个嵌套字段。其中,我如何获得第二个元素?
╔════╤════════════════════════════════════════════════╗
║ id │ status ║
╠════╪════════════════════════════════════════════════╣
║ 1 │ {"(1234,60,\"2020-02-29 01:18:19.309232\")"} ║
╟────┼────────────────────────────────────────────────╢
║ 2 │ {"(4567,70,\"2020-02-29 01:18:19.309232\")"} ║
╚════╧════════════════════════════════════════════════╝
结果应该是 id = 1,因为 60 是该行的 status 的第二个元素。
我的同事告诉我值中的不同字段。
-
user_id(bigint) -
status(bigint) -
updated_at(timestamp)
【问题讨论】:
-
"我看到它是一个嵌套字段。" - 它的数据类型到底是什么?看起来不像数组,不像 JSON,更像是自定义的字符串格式。
-
@Bergi 我不确定它是什么类型。它被称为“user_status_t[]”。不确定那是什么类型。
-
啊,那是一个很大的不同!
user_status_t将是 custom composite type。请向我们展示它在您的架构中的定义。 -
谢谢!我的同事告诉我价值中的不同领域。 1st - user_id (bigint), 2nd - status (bigint), 3rd - updated_at (timestamp) 使用你给我看的文档,我现在知道如何访问它了。谢谢!
标签: postgresql nested unnest