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]');