LINUX.ORG.RU

[PgSQL] использовать кусок выборки regexp'а для UPDATE


0

0

в общем есть таблица, в ней есть поле lstr типа TEXT. у некоторого количества записей это поле начинается с букв ASDF. выбрать их можно так: SELECT * FROM table WHERE lstr ~ '^ASDF'; вот каким бы хитрым макаром поменять именно вот эти четыре буквы на другую строку например XYZ. ну можно конечно по быстрому на перлухе скриптец настругать но хотелось бы средствами sql чуется мне если есть такое то должно быть что-то вроде: UPDATE table set lstr='ZYX$1' WHERE lstr ~ '^ASDF(.*)$';

anonymous
Ответ на: комментарий от anonymous

Прошу прощения - забыл начало строки в regexp update table set lstr = 'ZYX' || substr(lstr, 3) where lstr ~'^ASDF'

По сути вопроса. Того, что ты хочешь, сделать нельзя. Тильда - короткий способ написания оператора SIMILAR TO, который понимает некое подмножество regexp'ов. Это все. Из этого никак не следует возможность использования regexp'ов на уровне всего SQL выражения.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.