Замена в jsonb значения
Использую POSTGRESQL, есть таблица с полем jsonb
sel ect *
from
(
values
(1, '{"name":["Иванов","Сидоров"], "town":"Paris"}'::jsonb),
(2, '{"name":["Иванов","Сергеев"], "town":"Berlin"}'::jsonb),
(3, '{"name":["Марков"], "town":"Rome"}'::jsonb)
) as q (id, data)
https://www.db-fiddle.com/f/dMK5uHZ8Thxnk57hi7f4wN/0
Нужно в массиве по ключу name заменить Иванов на Петров, в итоге, чтобы
получилось
1 {"name":["Петров","Сидоров"],"town":"Paris"}
2 {"name":["Петров","Сергеев"],"town":"Berlin"}
3 {"name":["Марков"],"town":"Rome"}
Моих знаний хватило только, для разбиения на массив фамилий и ид. записей
select id, jsonb_array_elements(data->'name')
fr om
(
values
(1, '{"name":["Иванов","Сидоров"], "town":"Paris"}'::jsonb),
(2, '{"name":["Иванов","Сергеев"], "town":"Berlin"}'::jsonb),
(3, '{"name":["Марков"], "town":"Rome"}'::jsonb)
) as q (id, data)
Просьба помочь написать запрос