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.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    SQL