Problema:
Si desidera ordinare il risultato di una query SQL in ordine crescente o decrescente.
Esempio:
Il nostro database ha una tabella denominata customer_information
con i dati nelle colonne id
, first_name
, last_name
e email_address
. Gli indirizzi e-mail sono stati compilati manualmente dagli utenti e alcuni sono stati inseriti accidentalmente con spazi non necessari. Vuoi rimuovere gli spazi dagli indirizzi email.
id | nome | cognome | indirizzo_email |
---|---|---|---|
1 | Calvin | Rio | [email protected] |
2 | Alan | Paterson | al an.paterson@ example.com |
3 | Kurt | Evan | [email protected] |
4 | Alex | Watkin | alex. [email protected] |
Soluzione:
Useremo il REPLACE
funzione. Ecco la domanda:
SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Ecco il risultato della query:
first_name | cognome | indirizzo_email |
---|---|---|
Calvin | Rio | [email protected] |
Alan | Paterson | [email protected] |
Kurt | Evan | [email protected] |
Alex | Watkin | [email protected] |
Discussione:
Usa il REPLACE
funzione se si desidera sostituire tutte le occorrenze di una sottostringa in una determinata stringa. Nel nostro esempio, sostituiamo gli spazi non necessari con valori vuoti.
Questa funzione accetta tre argomenti. Di seguito viene illustrata la sintassi della funzione:
REPLACE(string_expression, substring, new_substring)
Il primo argomento è la stringa che vorremmo modificare. Il secondo argomento è la sottostringa da sostituire e il terzo argomento è la stringa che vogliamo utilizzare al posto della sottostringa sostituita. Rimuoviamo gli spazi indesiderati nel nostro esempio, ma la funzione può essere utilizzata per molti scopi. Ad esempio, potremmo voler pulire e standardizzare una colonna di numeri di telefono. Possiamo usare il REPLACE
funzione per farlo.
Se vuoi rimuovere più di un carattere da una determinata stringa, nidifica semplicemente REPLACE
funzionare una seconda volta. Ad esempio, se hai una stringa con spazi e trattini non necessari, puoi utilizzare la seguente sintassi:
REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Ricorda che gli argomenti di questa funzione in MySQL fanno distinzione tra maiuscole e minuscole, quindi fai attenzione con le lettere.