445 votes

Mise à jour de la valeur d'une colonne, en remplaçant une partie d'une chaîne

J'ai une table avec les colonnes suivantes dans une base de données MySQL

[id, url]

Et l'url du type:

 http://domain1.com/images/img1.jpg

Je veux mettre à jour toutes les url vers un autre domaine

 http://domain2.com/otherfolder/img1.jpg

tout en gardant le nom du fichier.

Quelle est la requête doit-je utiliser?

938voto

Shedal Points 6482
UPDATE urls
SET url = REPLACE(url, 'domain1.com/images/', 'domain2.com/otherfolder/')

231voto

Marc B Points 195501
UPDATE yourtable
SET url = REPLACE(url, 'http://domain1.com/images/', 'http://domain2.com/otherfolder/')
WHERE url LIKE ('http://domain1.com/images/%');

pertinentes docs: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace

30voto

schellack Points 5378

Essayez d'utiliser la fonction REMPLACER:

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

Notez qu'il est sensible à la casse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X