首页 > 解决方案 > 如何从数组(postgresql)中的每个对象获取键?

问题描述

我完成了

let statuses = await t.any(`SELECT DISTINCT status FROM mails`)

并得到

        "statuses": [
        {
            "status": "error"
        },
        {
            "status": "success"
        }
    ]

如何获取带有对象键的数组?['错误','成功'] ?

标签: sqlpostgresql

解决方案


假设status是一jsonb列(它应该是),你可以这样做:

select distinct st.status
from mails m
  cross join jsonb_array_elements(m.status -> 'statuses') as st(status)

如果status是一json列,您将需要json_array_elements()使用


推荐阅读