Problem:
Du vil gerne sortere resultatet af en SQL-forespørgsel i stigende eller faldende rækkefølge.
Eksempel:
Vores database har en tabel med navnet customer_information
med data i kolonnerne id
, first_name
, last_name
og email_address
. E-mailadresserne blev udfyldt af brugerne manuelt, og nogle blev indtastet med unødvendige mellemrum ved et uheld. Du vil fjerne mellemrummene fra e-mail-adresserne.
id | fornavn | efternavn | email_address |
---|---|---|---|
1 | Calvin | Rios | [email protected] |
2 | Alan | Paterson | al an.paterson@ example.com |
3 | Kurt | Evans | [email protected] |
4 | Alex | Watkins | alex. [email protected] |
Løsning:
Vi bruger REPLACE
fungere. Her er forespørgslen:
SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Her er resultatet af forespørgslen:
fornavn | efternavn | email_address |
---|---|---|
Calvin | Rios | [email protected] |
Alan | Paterson | [email protected] |
Kurt | Evans | [email protected] |
Alex | Watkins | [email protected] |
Diskussion:
Brug REPLACE
funktion, hvis du vil erstatte alle forekomster af en understreng i en given streng. I vores eksempel erstatter vi unødvendige mellemrum med tomme værdier.
Denne funktion tager tre argumenter. Det følgende illustrerer funktionens syntaks:
REPLACE(string_expression, substring, new_substring)
Det første argument er den streng, vi gerne vil ændre. Det andet argument er den understreng, der skal erstattes, og det tredje argument er den streng, vi ønsker at bruge i stedet for den erstattede understreng. Vi fjerner de uønskede mellemrum i vores eksempel, men funktionen kan bruges til mange formål. For eksempel vil vi måske rense og standardisere en kolonne med telefonnumre. Vi kan bruge REPLACE
funktion til at gøre det.
Hvis du vil fjerne mere end ét tegn fra en given streng, skal du bare indlejre REPLACE
fungere en anden gang. For eksempel, hvis du har en streng med unødvendige mellemrum og bindestreger, kan du bruge følgende syntaks:
REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Husk at argumenterne for denne funktion i MySQL er store og små bogstaver, så vær forsigtig med bogstaverne.