Mettre à jour une valeur de colonne en remplaçant une partie d’une chaîne

J’ai une table avec les colonnes suivantes dans une firebase database MySQL

[id, url] 

Et les URL sont comme:

  http://soffr.miximages.com/mysql/img1.jpg 

Je souhaite mettre à jour toutes les URL vers un autre domaine

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

conserver le nom du fichier tel quel.

Quelle est la requête que je dois lancer?

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

Documents pertinents: http://dev.mysql.com/doc/refman/5.5/en/ssortingng-functions.html#function_replace

Essayez d’utiliser la fonction REPLACE :

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

Notez qu’il est sensible à la casse.

Vous avez besoin de la clause WHERE pour remplacer UNIQUEMENT les enregistrements conformes à la condition de la clause WHERE (par opposition à tous les enregistrements). Vous utilisez le signe % pour indiquer une chaîne partielle: IE

LIKE (‘… // domain1.com/images/%’); signifie tous les enregistrements qui commencent par “… // domain1.com/images/” et ont quelque chose après (c’est le% pour …)

Un autre exemple:

LIKE (‘% http://domain1.com/images/% ‘) qui signifie tous les enregistrements contenant ” http://domain1.com/images/ ” dans n’importe quelle partie de la chaîne …

Essaye ça…

 update [table_name] set [field_name] = replace([field_name],'[ssortingng_to_find]','[ssortingng_to_replace]');