Ormai da aprile sono sul mio VPS, dopo aver laciato la comunque ottima AlterVista. Per rendere indolore il passaggio da lublog.altervista.org a lublog.tuttoeniente.net, ho impostato su AlterVista un .htaccess che redireziona qui tutte le richieste, dato che la struttura delle directory è rimasta intatta.
Ultimamente, però, ho notato che molte immagini non si vedevano, a causa della protezione anti-leech di AlterVista, quindi mi si è presentata la necessità di correggere tutti gli URL delle immagini nei post, un lavoro veramente enorme, ma MySQL mi è venuto incontro.
Ho scoperto l’esistenza della funzione REPLACE(), che fa esattamente quello che il nome suggerisce. La sintassi è la seguente:
UPDATE nome-tabella SET nome-campo = REPLACE(nome-campo, 'trova-questo', 'sostituisci-con-questo');
Nel mio caso ho eseguito:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'lublog.altervista.org', 'lublog.tuttoeniente.net')
In 0,1384 secondi ho fatto quello che mi avrebbe richiesto come minimo mezz’ora di lavoro manuale.
Grazie MySQL!
3 risposte su “Trova e sostituisci in MySQL”
grazie per il consiglio, funziona!
Grazie…proprio quello che cercavo al primo risultato della ricerca!
Mi chiedo se la seguente è un’ottimizzazione, lascia tutto come è (il where è incluso nella replace oppure è solo una perdita di tempo:
UPDATE nome-tabella SET nome-campo = REPLACE(nome-campo, ‘trova-questo’, ‘sostituisci-con-questo’)
where nome-campo LIKE ‘%trova-questo%’;