Presupponendo informazioni mancanti:
- La tua tabella ha un PK chiamato
user_id
. - Vuoi rimuovere tutti gli elementi con
id = 2
su tutta la tavola. - Non vuoi toccare altre righe.
id
è unico all'interno di ogni array dichats
.
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;
La seguente spiegazione corrisponde alla portata delle informazioni fornite nella domanda: