Come sostituire una sottostringa in SQL
Per sostituire una parte della stringa lasciando immutato tutto il resto, nel linguaggio SQL utilizzo a funzione Replace.
Replace(campo, stringa da sostituire, stringa sostituta)
In questo caso sto usando il database MySQL.
Un esempio pratico
Nel campo url della tabella sito sono registrati tutti gli indirizzi del mio sito web nel seguente formato:
/sql/
Voglio modificare l'indirizzo url da ".com" a ."it".
Per modificare un singolo record della tabella, ad esempio quello con id=3, posso scrivere la seguente query:
UPDATE sito SET url = REPLACE(url, "andreaminini.com", "andreaminini.it") WHERE ( id = "3" )
La query modifica il contenuto del record.
Adesso nel campo url c'è la seguente informazione:
http://www.andreaminini.it/sql/
La query ha modificato soltanto la sottostringa "andreaminini.com" lasciando immutato tutto il resto.
Esempio 2
Per sostituire una parte della stringa nel campo url da tutti i record della tabella, digito la stessa query ma senza condizioni.
UPDATE sito SET url = REPLACE(url, "andreaminini.com", "andreaminini.it")
La query sostituisce la sottostringa "andreaminini.com" con "andreaminini.it" in tutti i record.
Il risultato è lo stesso ma vale per tutta la tabella.
E così via.
Nota. E' anche possibile condizionare la sostituzione della parte di stringa soltanto sui record che rispondono a una determinata regola, basta aggiungere la clausola WHERE seguita dalla condizione.