sql >> Databasteknik >  >> RDS >> Mysql

Hur man tar bort mellanslag från en sträng i MySQL

Problem:

Du vill sortera resultatet av en SQL-fråga i stigande eller fallande ordning.

Exempel:

Vår databas har en tabell med namnet customer_information med data i kolumnerna id , first_name , last_name och email_address . E-postadresserna fylldes i av användarna manuellt, och några angavs med onödiga mellanslag av misstag. Du vill ta bort mellanslagen från e-postadresserna.

id förnamn efternamn 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 kommer att använda REPLACE fungera. Här är frågan:

	SELECT
		first_name,
		last_name,
		REPLACE(email_address, " ", "") AS correct_email_address
	FROM customer_information;

Här är resultatet av frågan:

förnamn efternamn email_address
Calvin Rios [email protected]
Alan Paterson [email protected]
Kurt Evans [email protected]
Alex Watkins [email protected]

Diskussion:

Använd REPLACE funktion om du vill ersätta alla förekomster av en delsträng i en given sträng. I vårt exempel ersätter vi onödiga mellanslag med tomma värden.

Denna funktion tar tre argument. Följande illustrerar syntaxen för funktionen:

REPLACE(string_expression, substring, new_substring)

Det första argumentet är strängen vi skulle vilja modifiera. Det andra argumentet är delsträngen som ska ersättas, och det tredje argumentet är strängen vi vill använda i stället för den ersatta delsträngen. Vi tar bort de oönskade utrymmena i vårt exempel, men funktionen kan användas för många ändamål. Till exempel kanske vi vill rensa och standardisera en kolumn med telefonnummer. Vi kan använda REPLACE funktion för att göra det.

Om du vill ta bort mer än ett tecken från en given sträng, kapslar du bara REPLACE fungera en andra gång. Om du till exempel har en sträng med onödiga mellanslag och bindestreck kan du använda följande syntax:

	REPLACE(REPLACE(string_expression, " ", ""), "-", "")

Kom ihåg att argumenten för denna funktion i MySQL är skiftlägeskänsliga, så var försiktig med bokstäverna.


  1. Java:Hur man infogar CLOB i Oracle-databasen

  2. Vad betyder det att undkomma ett snöre?

  3. Databasprestandajustering för MariaDB

  4. Varningar och meddelanden från SkySQL