Замена данных в MySQL

Doroshev
На сайте с 21.01.2010
Offline
178
439

Добрый день. Возникла необходимость заменить одни данный в MySQL на другие. Но запрос немного не стандартный для меня.

Сейчас в БД записано так:

[media=XXX]

Мне необходимо сделать так (добавить div):

<div class="dofollow-video">[media=XXX]</div>

XXX - это случайная переменная, которая всегда разная.

Этой формулой воспользоваться не могу, т.к. она заменяет по точному вхождению.

UPDATE НАЗВАНИЕ ТАБЛИЦЫ SET НАЗВАНИЕ СТОЛБЦА= REPLACE(НАЗВАНИЕ СТОЛБЦА, 'СТАРОЕ ЗНАЧЕНИЕ', 'НОВОЕ ЗНАЧЕНИЕ')
[umka]
На сайте с 25.05.2008
Offline
456
#1

Штатных средств для замены по регулярному выражению в MySQL нет.

Лог в помощь!
SeVlad
На сайте с 03.11.2008
Offline
1609
#2
Doroshev:
Этой формулой воспользоваться не могу, т.к. она заменяет по точному вхождению.

Вар1. Выгрузить дамп, в текст редакторе с поддержкой регулярок произвести замену и залить дамп обратно.

Вар2. Воспользоваться этим скриптом. Он, правда для ВП, но это не проблема ;)

Если заменяемые данные хранятся в сериализованых массивах, то при вар1 они порушатся.

Регулярка для замены прибл так:

найти

\[media=(.*)?\]

заменить на

<div class=\"dofollow-video\">\[media=$1\]<\/div>
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
vob2014
На сайте с 30.03.2014
Offline
91
#3

можно попробовать заменить в два прохода, сначала [media=

а потом ] - если например после нее идет что-то постоянное

или это единственное вхождение ] или последний символ...

...
Doroshev
На сайте с 21.01.2010
Offline
178
#4
vob2014:
можно попробовать заменить в два прохода, сначала [media=
а потом ] - если например после нее идет что-то постоянное
или это единственное вхождение ] или последний символ...

Этот вариант рассматривал одним из первых. И, к сожалению, он не подходит. Буду пробовать методом автора выше что-то придумать =)

---------- Добавлено 18.04.2015 в 13:24 ----------

vob2014:
можно попробовать заменить в два прохода, сначала [media=
а потом ] - если например после нее идет что-то постоянное
или это единственное вхождение ] или последний символ...

Все же нашел, чем можно вытащить начало и конец. Спасибо, что заставил подумать =) Сделал твоим способом!

з.ы.Вырезал видео, чтобы адаптивный дизайн начал проходить проверку Гугла. А то 21 алгоритм новый.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий