MySQL, массовая замена по маске - как?
Новая тема Написать ответ
# Вс Мар 17, 2013 2:06 amYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Всем привет!
Подскажите, возможно ли в MySQL (phpMyAdmin или php-скрипт) сделать такое:
в таблице есть поля со значениями:
http://site-1.com/_случайное_значение_/aaa.jpg
http://site-1.com/_случайное_значение_/bbb.jpg
http://site-1.com/_случайное_значение_/ccc.jpg

нужно заменить их на значения:
http://site-2.com/_случайное_значение_/aaa.jpg
http://site-2.com/_случайное_значение_/bbb.jpg
http://site-2.com/_случайное_значение_/ccc.jpg

То есть, чтобы Мускул искал по имени файла - и где найдет - заменял значение на новое, для того же файла.

Просто переименовать site-1.com в site-2.com не получается, т.к. в УРЛах есть части, разные для каждого файла.

Может существует какой-нибудь способ?

Заранее спасибо! Drinks or Beer
# Вс Мар 17, 2013 10:51 amexolon Зарег.: 22.11.2007 ; Сообщ.: 2397Ответить с цитатой
Ничего не понял. Что и как нужно заменить?

А вообще выэкспортируй в csv или xls, поправь в блокноте или эксэле, залей обратно. И не парься.

Или вот так http://stackoverflow.com/questions/5956993/mysql-string-replace
# Вс Мар 17, 2013 3:17 pmJM Зарег.: 25.08.2006 ; Сообщ.: 1382Ответить с цитатой
Правильный пример же дан
Цитата:
UPDATE your_table SET your_field = REPLACE(your_field, 'http://site-1.com/', 'http://site-2.com/') WHERE your_field LIKE '%http://site-1.com/%'


your_table - таблица твоя
your_field - поле...
# Вс Мар 17, 2013 3:40 pmexolon Зарег.: 22.11.2007 ; Сообщ.: 2397Ответить с цитатой
JM, ну да. Только я так и не понял, что же на самом деле нужно.
# Вс Мар 17, 2013 5:36 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
exolon, JM, да уже вручную сделал r5
JM, просто замену нельзя, я в первом посте написал, что случайные значения в УРЛах (хэши), они у каждого УРЛа уникальны, вроде:

http://site1.com/oHKFguiwuf982iLF/aaa.jpg
http://site2.com/ihif089t9kjo7t8ojy/aaa.jpg
http://site1.com/kfjBSOf978Kfy79i8/bbb.jpg

Можно как-то при помощи RegExp'ов, но я в них слабо разбираюсь, может что-то такое: /.*$current_file/si, где $current_file - имя текущего файла для замены.
# Вс Мар 17, 2013 7:02 pmexolon Зарег.: 22.11.2007 ; Сообщ.: 2397Ответить с цитатой
Ну и отлично Smile

:thup:
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ
 
Любое использование материалов, размещенных на ArmadaBoard.com, без разрешения владельцев ArmadaBoard.com запрещено.