Forudsat manglende information:
- Din tabel har en PK kaldet
user_id
. - Du vil fjerne alle elementer med
id = 2
hen over hele bordet. - Du ønsker ikke at røre ved andre rækker.
id
er unik inden for hvert array afchats
.
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;
Følgende forklaring matcher omfanget af de angivne oplysninger i spørgsmålet: