postgresql - postgres 查询更新 json 字段
问题描述
在 PostgreSQL 数据库中,我有一个名为 hotel 的表,其中有一个名为 hotel_info 的列。这个 hotel_info 列存储 json 对象,如下所示
{
"hotel":{
"room_details":{
"customer_detail":{
"first_name" : "aaa"
}
}
}}
我需要一个更新查询来更新“hotel_info”列中“first_name”字段的值。请帮我为此建立查询。
提前致谢!
解决方案
像这样的东西应该可以工作(假设您使用的是确实支持 JSON 运算符的 Postgres 版本)。请注意,此处的“设置”功能仅适用于 JSONB,因此您可能需要在之前/之后转换列:
SELECT JSONB_SET(
hotel_info #> '{hotel, room_details, customer_detail}'
, '{first_name}'
, '"bbb"'
, create_missing FALSE) AS hotel_info_modified
FROM table
在这里,为了示例,我将名称更改为“bbb”。通过 SELECT 检查这确实是预期的行为,然后您可以在需要时更改为 UPDATE。
推荐阅读
- flutter - 颤振结合两个流,其中第二个取决于第一个?
- excel - 如何使用 IF 逻辑分类为收入或债务
- time-series - 如何为 ML 准备时间序列数据
- angular - Angular(8)注入令牌未在组件中解析
- c# - 如何创建具有嵌套内容的 UserControl?
- php - 包含 mysqli 调用时 PHP exec 不起作用
- typescript - 了解 Firebase 中的 GeneratePasswordResetEmailLink
- flutter - 如何从 schema.graphql 生成查询和突变字符串导出
- c# - 使用fluxor an Blazor登录后无法获取状态
- python - 如何限制序列化程序中的记录数