Trova e sostituisci in MySQL

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.

Find & replace

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 thoughts on “Trova e sostituisci in MySQL

  1. 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%’;

Leave a Reply

Your email address will not be published. Required fields are marked *