PostgreSQL unnest,嵌套字段的特定元素上的WHERE子句

时间:2020-07-16 20:50:51

标签: postgresql nested unnest

鉴于下表,我想提取id值,其中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的第二个元素。

我的同事告诉我值中的不同字段。

  1. user_idbigint
  2. statusbigint
  3. updated_attimestamp

1 个答案:

答案 0 :(得分:0)

您可以使用.访问复合类型的各个元素。因此,对您的(非规范化!)表的查询将是

SELECT id
FROM table_name
WHERE (table_name.status).status = 60;