sql >> Database >  >> RDS >> Mysql

Spaties uit een string verwijderen in MySQL

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.


  1. Hoe MariaDB op Ubuntu te installeren en te beveiligen

  2. Hoe om te gaan met Ruby on Rails-fout:installeer de postgresql-adapter:`gem install activerecord-postgresql-adapter'

  3. Best practice om een ​​veilige database voor Android-apparaten te implementeren

  4. Nieuwe kolommen in het midden van een tabel invoegen?