PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres - Element aus dem jsonb-Array entfernen

Unter der Annahme fehlender Informationen:

  • Ihre Tabelle hat einen PK namens user_id .
  • Sie möchten alle Elemente mit id = 2 entfernen über den ganzen Tisch.
  • Sie möchten keine anderen Zeilen berühren.
  • id ist innerhalb jedes Arrays von chats eindeutig .

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;

Die folgende Erklärung entspricht dem Umfang der bereitgestellten Informationen in der Frage: