предложение sql для обновления доменного имени в строке пути

#mysql #sql

#mysql #sql

Вопрос:

допустим, эта таблица

  -------------- --------------------------------- 
| id           | path                            |
 -------------- --------------------------------- 
| 1            | http://old.com/img/1.png        | 
| 2            | http://old.com/img/2.png        | 
| 3            | http://old.com/img/3.png        | 
| 4            | http://old.com/img/4.png        | 
| 5            | http://old.com/img/5.png        | 
| 6            | http://old.com/img/6.png        | 
 -------------- --------------------------------- 
  

какое предложение обновит его до

  -------------- --------------------------------- 
| id           | path                            |
 -------------- --------------------------------- 
| 1            | http://new.com/img/1.png        | 
| 2            | http://new.com/img/2.png        | 
| 3            | http://new.com/img/3.png        | 
| 4            | http://new.com/img/4.png        | 
| 5            | http://new.com/img/5.png        | 
| 6            | http://new.com/img/6.png        | 
 -------------- --------------------------------- 
  

я не знаю, как str_replace в mysql

"UPDATE table SET path = REPLACE(path, 'old.com', 'new.com')" ?? я не могу испортить базу данных здесь..

Комментарии:

1. Всегда, всегда, всегда, всегда сначала создавайте резервные копии.

2. Ваш код выглядит правильно. Если вы хотите это проверить, выполните команду «ВЫБРАТЬ путь, ЗАМЕНИТЬ(path, ‘old.com ‘, ‘new.com ‘) ИЗ таблицы», чтобы посмотреть, выглядят ли результаты правильно.

Ответ №1:

 update mytable set path = replace(path, 'old.com', 'new.com');
  

Если вы беспокоитесь о последствиях обновления (и вам следует беспокоиться), я делаю это первым:

 select path, replace(path, 'old.com', 'new.com') as new_path
from mytable;
  

И я просто просматриваю результаты, чтобы увидеть, «нормально ли они выглядят». Если они это сделают, если запустите обновление.

Ответ №2:

В самом MySQL нет функции замены регулярных выражений: функции регулярных выражений соответствуют только. Вот документация по mysql