Probleem:
U wilt het resultaat van een SQL-query in oplopende of aflopende volgorde sorteren.
Voorbeeld:
Onze database heeft een tabel met de naam customer_information
met gegevens in de kolommen id
, first_name
, last_name
, en email_address
. De e-mailadressen zijn door de gebruikers handmatig ingevuld en sommige zijn per ongeluk met onnodige spaties ingevoerd. U wilt de spaties van de e-mailadressen verwijderen.
id | voornaam | achternaam | e-mailadres |
---|---|---|---|
1 | Calvijn | Rios | [email protected] |
2 | Alan | Paterson | al an.paterson@ example.com |
3 | Kurt | Evans | [email protected] |
4 | Alex | Watkins | alex. [email protected] |
Oplossing:
We gebruiken de REPLACE
functie. Hier is de vraag:
SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Hier is het resultaat van de zoekopdracht:
voornaam | achternaam | e-mailadres |
---|---|---|
Calvin | Rios | [email protected] |
Alan | Paterson | [email protected] |
Kurt | Evans | [email protected] |
Alex | Watkins | [email protected] |
Discussie:
Gebruik de REPLACE
functie als u alle exemplaren van een subtekenreeks in een bepaalde tekenreeks wilt vervangen. In ons voorbeeld vervangen we onnodige spaties door lege waarden.
Deze functie heeft drie argumenten. Het volgende illustreert de syntaxis van de functie:
REPLACE(string_expression, substring, new_substring)
Het eerste argument is de string die we willen wijzigen. Het tweede argument is de te vervangen subtekenreeks en het derde argument is de tekenreeks die we willen gebruiken in plaats van de vervangen subtekenreeks. We verwijderen de ongewenste spaties in ons voorbeeld, maar de functie kan voor veel doeleinden worden gebruikt. We willen bijvoorbeeld een kolom met telefoonnummers opschonen en standaardiseren. We kunnen de REPLACE
. gebruiken functie om dit te doen.
Als u meer dan één teken uit een bepaalde tekenreeks wilt verwijderen, nest dan gewoon de REPLACE
een tweede keer functioneren. Als u bijvoorbeeld een tekenreeks heeft met onnodige spaties en streepjes, kunt u de volgende syntaxis gebruiken:
REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Onthoud dat de argumenten van deze functie in MySQL hoofdlettergevoelig zijn, dus wees voorzichtig met de letters.