sql >> Database >  >> RDS >> PostgreSQL

Postgres - verwijder element uit jsonb-array

Uitgaande van ontbrekende informatie:

  • Uw tafel heeft een PK genaamd user_id .
  • U wilt alle elementen met id = 2 . verwijderen over de hele tafel.
  • Je wilt geen andere rijen aanraken.
  • id is uniek binnen elke reeks chats .

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;

De volgende uitleg komt overeen met de omvang van de verstrekte informatie in de vraag:




  1. Verbetering van de oplossing van de bovenste/bovenste dalende mediaan

  2. Hoe u de native gecompileerde opgeslagen procedures van Hekaton niet aanroept?

  3. Hibernate-criteria met zelf-join

  4. Rij-naar-kolomtransformatie van verschillende tabellen en verschillende rijennummers (unie) in MySQL-versie 8.0.17 met behulp van Pivot