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 rios.calvin@example.com
2 Alan Paterson al an.paterson@ example.com
3 Kurt Evans kurt.evans@example.com
4 Alex Watkins alex. watkins@example.com

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 rios.calvin@example.com
Alan Paterson alan.paterson@example.com
Kurt Evans kurt.evans@example.com
Alex Watkins alex.watkins@example.com

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