gpt4 book ai didi

sql - postgres/Sequelize : Edit an object in jsonb array if its property's value matches

转载 作者:行者123 更新时间:2023-12-03 22:21:14 26 4
gpt4 key购买 nike

我有一个 db homeroom 有一列 appliances 存储了一个 jsonb 数组。它有像

[{
"name": "TV",
"uuid": "21"
},
{
"name": "Oven",
"uuid": "22"
}
]

现在,我想用 uuid 22 编辑值并将其设置为 {"name":"Fridge","uuid":23} 。我该怎么做?解释 jsonb_set 等的答案都没有帮助我。它不一定是 Sequelize 查询,我也很喜欢原始查询。

最佳答案

考虑到您的数据类型是 jsonb[] 并且给定数据集,您的问题最简单的解决方案是 array_replace :
试试这个:

update room set appliances= array_replace(appliances,'{"name": "Oven","uuid": "22"}', '{"name": "Fridge","uuid": "23"}');
DEMO
不需要 jsonb_set 。它仅适用于 jsonb。

关于sql - postgres/Sequelize : Edit an object in jsonb array if its property's value matches,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62486102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com