PostgreSQL Найти и заменить в JSONB Data как текст

У меня есть некоторые поля идентификатора содержимого 0 { image : 'https://olddomain.com/file.jpg' } 1 { image : 'https://oldodmain.com/file2.jpg' } данные, которые выглядят следующим образом:

UPDATE content SET fields::text = REPLACE(fields::text, 'https://olddomain.com', 'https://newdomain.com');

Я хочу найти и заменить на нем, как если бы это было текстовое поле. Я попробовал это:

jsonb

Но это приводит к синтаксической ошибке.

sql,json,postgresql,sql-update,syntax-error,

1

Ответов: 1


1

Результат приведения не является значением l, и вы не можете присвоить ему значение. Тем не менее, вы можете взять текст результата replaceвызова и вернуть его обратно jsonb:

UPDATE content 
SET    fields = 
       REPLACE(fields::text, 'https://olddomain.com', 'https://newdomain.com')::jsonb;

SQLFiddle

SQL, JSON, PostgreSQL, SQL-обновление, синтаксис ошибок,
Похожие вопросы
Яндекс.Метрика