Dengan asumsi informasi yang hilang:
- Tabel Anda memiliki PK bernama
user_id
. - Anda ingin menghapus semua elemen dengan
id = 2
di seluruh meja. - Anda tidak ingin menyentuh baris lain.
id
unik dalam setiap larikchats
.
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;
Penjelasan berikut sesuai dengan luasnya informasi yang diberikan dalam pertanyaan: