Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2022, 13:33   #1
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию Замена в jsonb значения

Использую POSTGRESQL, есть таблица с полем jsonb
Код:
select *
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')
from 
(
values
(1, '{"name":["Иванов","Сидоров"], "town":"Paris"}'::jsonb),
(2, '{"name":["Иванов","Сергеев"], "town":"Berlin"}'::jsonb),
(3, '{"name":["Марков"], "town":"Rome"}'::jsonb)
) as q (id, data)
Просьба помочь написать запрос
polin11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить в триггере вставку пустого jsonb polin11 SQL, базы данных 1 16.10.2020 23:03
Замена значения ячейки Ukhanev Microsoft Office Excel 13 29.07.2014 15:39
Замена значения Aleksandr БД в Delphi 5 10.04.2013 08:56
Замена значения при условии dariya92 Microsoft Office Excel 0 21.07.2012 15:34
Замена Значения в Форме Vas613 Microsoft Office Access 2 04.11.2011 16:03