更新PostgreSQL中的jsonb数据中的多个值

时间:2016-11-14 07:18:51

标签: json postgresql jsonb

我需要更新表'设置'中的jsonb数据(column-> users)  我的jsonb数据就像

'{
    "Email": "aaaa",
    "UserId": "49",
    "Created": "11/13/2016",
    "EntityId": "1",
    "IsActive": "False",
    "Modified": "11/13/2016",
    "Username": "aa"
}' 

在这个json字符串中,我需要一起更新Email,IsActive,Username。 我尝试了下面的更新查询,它的工作正常。但这是单值更新。

UPDATE settings 
SET users = jsonb_set(users, '{Email}', '"aa"') 
WHERE users @> '{"UserId":"49"}';

如何更新多值更新?我正在使用postgres 9.5。

1 个答案:

答案 0 :(得分:10)

使用the concatenation operator

UPDATE settings 
SET users = users || '{"Email": "new email", "IsActive": "True", "Username": "new username"}'
WHERE users @> '{"UserId":"49"}';