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

Převeďte pole objektů na pole kompatibilní pro nodejs/pg/unnest

Můžete poslat svůj řetězec JSON tak, jak je, a nechat PostgreSQL, aby se s ním vypořádal:

update portfolios p
set votes = s.votes
from (
  select (e->>'votes')::int as votes, (e->>'id')::int as id
  from (select (regexp_replace($1, '"\1"', 'g'))::jsonb as jarr) j
  cross join jsonb_array_elements(jarr) e
  ) s
where p.id = s.id;

Kde $1 je [{votes: 5, id: 1}, {votes: 15, id: 1}, {votes: 25, id: 2}]', '([a-z]+) jako řetězec.



  1. Python Oracle, vkládání Žádná chyba

  2. Jak převést čas na datum v místním časovém pásmu během dotazu

  3. SQL, Pomocná tabulka čísel

  4. Řetězec RODBC je zkrácen