web-dev-qa-db-fra.com

str_replace dans SQL UPDATE?

Voici un exemple de tableau:

name       |   picture

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

Disons qu'il y a plusieurs centaines d'autres enregistrements.

Disons également que nous avons déplacé les serveurs de "servera" vers "serverb".

Serait-il possible d'entrer dans ce tableau avec ne requête pour renommer le contenu de la colonne "image" pour chaque enregistrement afin de lire le nom de serveur correct?

43
Julian H. Lam

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%'
101
Anatoly G
UPDATE users
SET picture = REPLACE(picture, 'http://servera.Host.com/', 'http://serverb.Host.com/')
WHERE picture LIKE 'http://servera.Host.com/%';

J'inclus plus de la chaîne parce que je m'inquiéterais de "réparer" une image nommée "Somethingserverasomething.jpg". Je pourrais aussi penser à avoir une table base_url et simplement stocker des noms de fichiers image dans les utilisateurs, mais ce n'est pas la question que vous avez posée ;-)

18
Andrew