sql - 如何从数组(postgresql)中的每个对象获取键?
问题描述
我完成了
let statuses = await t.any(`SELECT DISTINCT status FROM mails`)
并得到
"statuses": [
{
"status": "error"
},
{
"status": "success"
}
]
如何获取带有对象键的数组?['错误','成功'] ?
解决方案
假设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()
使用
推荐阅读
- ios - 为什么没有分配相同的闭包类型
- c# - Visual Studio 安装项目创建的 MSI 无法从安装位置运行 exe
- reactjs - 解决 REST 请求后如何重定向用户
- mysql - Percona xtrabackup 几乎从不产生可行的备份 - 但报告“完成正常!”
- c# - 在 Azure 构建期间,想要获取 azure 管道生成的修订号以更新我的项目的 FileVersion
- node.js - 更新 JSON 数组特定字符串
- javascript - 数组有 10 个代表球员的对象,我试图在 Vue.js 中循环显示来自第 1 队的 5 名球员。我做对了吗?
- python - Django ORM:注释中的计数与查询集的计数有何不同?
- vue.js - Vue组件收到数据后如何更新
- c++ - C++ 在后台运行程序 Windows 10