sql - 无法使用 json_build_object 从 postgreSQL 查询创建大型 json 对象
问题描述
我正在尝试使用 json_build_object 从我的查询中创建一个 json 对象,如下所示:
Select json_agg(json_build_object('first_name',first_name,
'last_name',last_name,
'email',email,
'date_joined',date_joined,
'verification_date',verification_date,
'zip_code',zip_code,
'city',city,
'country',country))
from users
WHERE last_name= 'xyz'
json 对象在上面显示的列数下构建良好,但是当我添加所有列名时,查询会无限期地卡住/挂起,并且不显示错误消息。我减少了查询中的列数,它返回了一个正确的 json 对象。有人对此有任何想法吗?谢谢
我在省略 json_agg 后也尝试了查询,但结果仍然相同
解决方案
我不确定您的查询为什么会挂起 - 可能是 args 的数量有限制 - 但由于您正在以一种简单的方式构建每个 JSON 对象(属性名称与列名称相同),请尝试row_to_json
像这样使用:
select json_agg(row_to_json(u.*)) from users u WHERE last_name = 'xyz';
无论如何,拥有数十或数百个参数并不好。
推荐阅读
- reactjs - 使用与 React Form 中显示的不同的输入字段值
- firebase - 如何使用我的 Firebase 身份验证来处理外部服务?
- python - Tkinter 更改“x”/窗口关闭按钮图标
- google-apps-script - 脚本将谷歌电子表格下载到 pdf - 图像丢失
- python - 读取 .npy 文件时检索错误
- database - 从功能依赖中确定候选键:我们不使用最小超级键的例外情况?
- sql - 带有子组顺序的Mysql顺序结果
- java - Swagger-ui 以错误的格式显示日期时间示例
- linq - Linq 多个连接到 SelectList
- python - 使用 chaquopy 在 android studio 中集成 python 代码(对象检测代码)