Aggiorna un valore di colonna, sostituendo parte di una stringa

Ho una tabella con le seguenti colonne in un database MySQL

[id, url] 

E gli URL sono come:

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

Voglio aggiornare tutti gli URL a un altro dominio

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

mantenendo il nome del file così com’è.

Qual è la domanda che devo eseguire?

 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/%'); 

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

Prova a utilizzare la funzione REPLACE :

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

Nota che è case sensitive.

È necessaria la clausola WHERE per sostituire SOLO i record conformi alla condizione nella clausola WHERE (al contrario di tutti i record). Usa il segno % per indicare la stringa parziale: IE

LIKE (‘… // dominio1.com/images/%’); significa tutti i record che INIZIA con “… // dominio1.com/images/” e avere qualcosa DOPO (che è il% per …)

Un altro esempio:

LIKE (‘% http://domain1.com/images/% ‘) che significa tutti i record che contengono ” http://dominio1.com/immagini/ ” in qualsiasi parte della stringa …

Prova questo…

 update [table_name] set [field_name] = replace([field_name],'[string_to_find]','[string_to_replace]');