Comando per sostituire una stringa in un database MySQL o MariaDB

A chiunque debba gestire un database MySQL o MariaDB, prima o poi si è presentata l’esigenza di sostituire o cancellare  ricorsivamente una stringa all’interno delle righe del database. Normalmente questo genere di cose si faceva con degli script appositamente fatti per risolvere il problema ma c’è anche un modo molto più rapido per farlo.

E’ importante che prima di procedere con la lettura e l’applicazione di questo articolo, che voi siate a conoscenza di cosa sia un database, che ci sappiate mettere le mani e che facciate un backup di sicurezza. E’ facile incappare in errori che possano fare disastri utilizzando questo sistema perché si potrebbe essere nelle condizione di dimenticare qualcosa o di utilizzare i caratteri jolly in modo improprio.

L’articolo è fatto come promemoria per coloro i quali sanno già mettere le mani all’interno di un database tramite gli appositi strumenti e client.

Il comando in questione è REPLACE ed in questo caso può essere affiancato al comando UPDATE. La sintassi generica del comando è:


USE database_name;
UPDATE table_name set column_name=REPLACE(column_name,'text to search','new text');

Il comando può essere seguito anche dalla clausola WHERE che serve in questo caso per limitare il numero di record sui quali eseguire l’operazione a quelli che veramente ci servono.

Per fare in modo che il concetto sia più chiaro, di seguito inserisco un esempio esplicativo. Supponiamo di aver inserito per errore in alcune righe del nostro database del testo che inizia con uno spazio. Se io volessi quindi togliere lo spazio all’inizio di ogni riga in cui per errore è stato inserito dovrei scrivere:

UPDATE table_name set column_name=REPLACE(column_name,'  ','') WHERE column_name LIKE ' %';

In questo caso, il carattere da ricercare è lo spazio e deve essere sostituito con niente ovvero i due apici affiancati senza spazi. La clausola WHERE nell’esempio dice che bisogna fare la sostituzione solo ed esclusivamente nelle righe che iniziano con uno spazio. Fate attenzione al fatto che il carattere di percentuale, utilizzato come carattere jolly, in questo caso non segue il primo apice perchè noi non stiamo cercando tutti gli spazi all’interno delle stringhe ma solo lo spazio all’inizio della stringa.

Se vi fosse qualcosa di poco chiaro, sentitevi liberi di scriverlo nei commenti e sarò lieto di rispondere ad ogni vostra domanda. Fate i bravi e cercate di non fare disastri!


E' possibile lasciare un commento come utenti registrati al sito, accedendo tramite social, account wordpress oppure come utenti anonimi. Nel caso in cui si desideri lasciare un commento come utenti anonimi si verrà avvisati via email di un'eventuale risposta solo se si inserisce l'indirizzo email (facoltativo). L'inserimento di qualsiasi dato nei campi dei commenti è totalmente facoltativo. Chiunque decida di inserire un qualsiasi dato accetta il trattamento di questi ultimi per i fini inerenti al servizio ovvero la risposta al commento e le comunicazioni strettamente necessarie.


Rispondi