Corsi on-line

Cercare e sostituire valori in MySQL

In PHP, per cercare un termine all’interno di un testo (o spiù specificatamente una sottostringa all’interno di una stringa) e sostituirlo con un altro, si usa la nota funzione Perl compatibile preg_replace() sfruttando una sintassi come la seguente:

preg_replace($pattern, $replacement, $string);

Questa funzione, ovviamente, può essere utilizzata anche per alterare il contenuto di un record estratto da un DB… ma cosa fare se si desidera effettuare l’aggiornamento dei dati presenti nel database sostituendo un dato valore all’interno di uno specifico campo? In realtà la procedura da seguire è piuttosto semplce e può essere messa in opera con una semplice istruzione SQL.
Ciò è possibile utilizzando la funzione replace() messa a disposizione nativamente dal DBMS MySQL:

UPDATE tabella SET campo = replace(campo,"valore_da_cercare","valore_per_la_sostituzione");

Grazie a questa semplice istruzione sarà possibile sostituire grandi quantità di valori in numerosi records.

Post correlati
  • penso che oltre a quello scritto da Claudio sia interessante l’articolo scritto da Max
    http://www.mrwebmaster.it/mysql/articoli/espressioni-regolari-query-mysql_852.html

  • Andrea Viggiano

    Ciao, se io ho piu stringhe da sostituire, ad esempio pippo con pluto, paperina con paperino, ecc… potrei usare una sintassi tipo questa:

    UPDATE tabella SET campo = replace(campo,”paperino”,”paperina”);
    UPDATE tabella SET campo = replace(campo,”cane”,”gatto”);
    UPDATE tabella SET campo = replace(campo,”pippo”,”pluto”);

    Quindi con piu queri una dietro l’altra…
    Ho circa 1000 parole da sostituire per i nuovi dati che mi arrivano settimanalmente….
    Lanciare 1000 query a settimana a mano e’ dura…
    Grazie a tutti per l’aiuto

I più letti del mese
Tematiche