sql >> Databáze >  >> RDS >> PostgreSQL

Postgres - odeberte prvek z pole jsonb

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 = 2 přes celý stůl.
  • Nechcete se dotknout dalších řádků.
  • id je jedinečný v rámci každého pole 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;

Následující vysvětlení odpovídá rozsahu poskytnutých informací v otázce:




  1. Výběr hodnot sloupců tabulky spojení jako název sloupce výsledku

  2. mysqldump version Chyba při exportu dat z MySQL

  3. MySQL v docker-compose -- přístup odepřen

  4. MySQL GROUP BY sloupec a zobrazuje hodnoty v různých sloupcích