str_replace в SQL ОБНОВЛЕНИЕ? - PullRequest
43 голосов
/ 15 октября 2010

Вот пример таблицы:

name       |   picture

John S.    |   http://servera.host.com/johns.png
Linda B.   |   http://servera.host.com/lindab.png
...

Допустим, есть еще несколько сотен записей.

Скажем также, что мы переместили серверы с "servera" на "serverb".

Можно ли зайти в эту таблицу с одним запросом , чтобы переименовать содержимое в столбце «изображение» для каждой записи, чтобы прочитать правильное имя сервера?

Ответы [ 2 ]

97 голосов
/ 15 октября 2010

T-SQL:

update TBL 
   set picture = Replace(picture, 'servera', 'serverb') 
 where picture like '%servera%'

Oracle:

update TBL 
   set picture = replace(picture, 'servera', 'serverb') 
 where picture like '%servera%'

MySQL:

update TBL 
   set picture = REPLACE(picture, 'servera', 'serverb') 
 where picture like '%servera%'
18 голосов
/ 15 октября 2010
UPDATE users
SET picture = REPLACE(picture, 'http://servera.host.com/', 'http://serverb.host.com/')
WHERE picture LIKE 'http://servera.host.com/%';

Я включаю больше строки, потому что я бы беспокоился о том, чтобы «исправить» изображение с именем «thingserverasomething.jpg ». Я мог бы также подумать о том, чтобы иметь таблицу base_url и просто хранить имена файлов изображений у пользователей, но это не тот вопрос, который вы задали; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...