Заменить не повторяющуюся часть текста в колонке

Sergo_Sev

Творец
Регистрация
14 Июн 2008
Сообщения
578
Реакции
193
Есть в БД ссылки такого вида
domain.ru/extras/online/index.html&rct=j&sa=U&ei=eFnBUNSpA6Sk4ATW-YGIDg&ved=0CGkQFjAa&q=&usg=AFQjCNH2ugo8u5gRK5RC0JfpkQW3kFLM-Q

domain.ru/templates/1474-jquery-mobile-dle-template.html&rct=j&sa=U&ei=-FjBUJSaA6j24QSZ-YGwAw&ved=0CK4BEBYwOA&q=&usg=AFQjCNFOmoz7YMaEF67wDOVsMw8VYp3BKA

Требуется удалить из ссылок часть "&rct=***", реально ли это сделать средствами MqSQL ?
 
Насколько мне известно, MySQL использует движёк POSIX ERE, и поэтому не поддерживает 'backreference', т.е. конструкцию вычленения искомого, чтобы производить над ним операции в дальнейшем. Обычно это делают с пом. паттерна, заключённого в круглые скобки, всё, что вне скобок – игнорируется, т.е. создаётся выборка нужно – остальное выбрасывается. Думаю, ты это сам знаешь.
Одним словом, экспортируй данные таблицы в текст, и заменяй паттерн типа (.*)&rct=.* на $1, и апдейть обратно.
 
Проблема в том, что в этой таблице более 500 000 записей и БД весит 1 гиг - слишком много, что не представляю где можно такой файл открыть
Если только скрипт писать для перебора всех строк
 
Раз ты уже знаешь, что именно повторятеся, то для простой замены во всех ссылках &rct=j можно использовать REPLACE
А вот если тебе первоначально нужно проанализировать все ссылки и найти совпадение, то лучше будет скрипт написать.
 
Раз ты уже знаешь, что именно повторятеся, то для простой замены во всех ссылках &rct=j можно использовать REPLACE
А вот если тебе первоначально нужно проанализировать все ссылки и найти совпадение, то лучше будет скрипт написать.
Нужно заменить всё после &rct= и эта часть везде разная
 
Лучше всего найти и экспортнуть именно ту таблицу, в которой нужно производить замену – БД обычно состоят из множества таблиц.
sql-файл лучше всего сохранить или конвертнуть в win1251/ANSI/кодировку Widows, но для разбивки на файлы это не обязательно.
Берём KeyWordKeeper (он с UTF не работает), разбиваем на файлы.
поиском, например тоталКоммандера ищем, в каких файлах есть искомое – отделяем эти файлы от остальных.
Разрезаем строки типа (данные),(данные) в полученных файлах на подстроки (выборка) – KeyWordKeeper их сольёт в одноимённые файлы.
Любым текстовым редактором, который поддерживает регулярки производим по файлам поиск изамену по паттерну в моём посте выше.
В том же текстовом редакторе собираем подстроки в строки и скармливаем (Update или Insert, если удалили) мускулу.
 
Назад
Сверху