在PostgreSQL数据库中,我有一个名为hotel的表,该表有一个名为hotel_info的列。该hotel_info列存储如下的json对象
{
"hotel":{
"room_details":{
"customer_detail":{
"first_name" : "aaa"
}
}
}}
我需要一个更新查询来更新“ hotel_info”列中“ first_name”字段的值。请帮助我为此建立查询。
谢谢!
答案 0 :(得分:0)
类似的事情应该起作用(假设您使用的是确实支持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。