sql >> Database teknologi >  >> RDS >> Mysql

Sådan fjerner du mellemrum fra en streng i MySQL

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.


  1. Hvordan sender du et argument til en PL/SQL-blok i en sql-fil kaldet ved hjælp af START i sqlplus?

  2. Kan ikke få Postgres i gang

  3. Indsættelse af en liste<> i SQL Server-tabel

  4. Sådan fjerner du de efterfølgende mellemrum efter månedens navn i Oracle