Za předpokladu chybějících informací:
- Vaše tabulka má PK s názvem
user_id. - Chcete odstranit všechny prvky s
id = 2přes celý stůl. - Nechcete se dotknout dalších řádků.
idje jedinečný v rámci každého polechats.
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;
Následující vysvětlení odpovídá rozsahu poskytnutých informací v otázce: