Замена в jsonb значения

1. polin11 12.06.22 13:25 Сейчас в теме
Замена в 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)


Просьба помочь написать запрос
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот