Uitgaande van ontbrekende informatie:
- Uw tafel heeft een PK genaamd
user_id
. - U wilt alle elementen met
id = 2
. verwijderen over de hele tafel. - Je wilt geen andere rijen aanraken.
id
is uniek binnen elke reekschats
.
UPDATE "Users" u
SET chats = array_remove(u.chats, d.chat)
FROM (
SELECT user_id, chat
FROM "Users", unnest(chats) chat
WHERE chat->>'id' = '2'
) d
WHERE d.user_id = u.user_id;
De volgende uitleg komt overeen met de omvang van de verstrekte informatie in de vraag: