Rucklless
@Rucklless

Как массово заменить записи в столбце?

Есть таблица mg_product, в ней есть стобец url.

Необходимо найти все значения в этом столбце с "_" и заменить его на "-".
Например:
"unitaz_napolniy_dama" на "unitaz-napolniy-dama"
"unitaz_napolniy_doca" на "unitaz-napolniy-doca"
и таких записей 600.

Проблема в том что оба значения еще надо сохранить и вывести для того чтобы прописать редиректы с одного на другой.

Мной было решено выгрузить все значения, запустить через цикл php, replace и сохранить оба значения в массив для последующей работы.

Вопрос в том как должен выглядеть единый запрос в базу на обновление всех урлов, который, мне придется, очевидно генерировать циклом.
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `url` AS `old_url`, REPLACE(`url`, '_', '-') AS `new_url`
  FROM `mg_product`
  WHERE LOCATE('_', `url`')
  INTO OUTFILE 'replace_urls'

UPDATE `mg_product`
  SET `url` = REPLACE(`url`, '_', '-')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы