我有一张桌子:
CREATE TABLE movies( id text, data jsonb );
INSERT INTO movies(id, data) VALUES (
'1',
{
"actors": [
{
"name": "actor1",
"email": "[email protected] /cdn-cgi/l/email-protection"
},
{
"name": "actor2",
"email": "[email protected] /cdn-cgi/l/email-protection"
}
]
}
);
我想要的是删除emailactor 数组的每个 json 对象中的字段(键 + 值)。
我已经尝试了以下解决方案,虽然它确实执行了,但它对数组根本没有任何影响:
update movies
set data = jsonb_set(data, '{actors}', (data->'actors') - '{actors, email}')
where id = '1';
操纵all数组中的项目,您将需要使用子查询:
UPDATE movies
SET data = jsonb_set(data, '{actors}', (
SELECT jsonb_agg(actor - 'email')
FROM jsonb_array_elements(data->'actors') actor
))
WHERE id = '1';
()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)