Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer les espaces d'une chaîne dans MySQL

Problème :

Vous souhaitez trier le résultat d'une requête SQL par ordre croissant ou décroissant.

Exemple :

Notre base de données a une table nommée customer_information avec des données dans les colonnes id , first_name , last_name , et email_address . Les adresses e-mail ont été remplies manuellement par les utilisateurs, et certaines ont été entrées avec des espaces inutiles par accident. Vous souhaitez supprimer les espaces des adresses e-mail.

identifiant prénom nom_de_famille adresse_email
1 Calvin Rios [email protected]
2 Alan Paterson al an.paterson@ example.com
3 Kurt Evans [email protected]
4 Alex Watkins alex. [email protected]

Solution :

Nous utiliserons le REPLACE une fonction. Voici la requête :

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

Voici le résultat de la requête :

prénom nom_de_famille adresse_email
Calvin Rios [email protected]
Alain Paterson [email protected]
Kurt Evans [email protected]
Alex Watkins [email protected]

Discussion :

Utilisez le REPLACE si vous souhaitez remplacer toutes les occurrences d'une sous-chaîne dans une chaîne donnée. Dans notre exemple, nous remplaçons les espaces inutiles par des valeurs vides.

Cette fonction prend trois arguments. Ce qui suit illustre la syntaxe de la fonction :

REPLACE(string_expression, substring, new_substring)

Le premier argument est la chaîne que nous aimerions modifier. Le deuxième argument est la sous-chaîne à remplacer et le troisième argument est la chaîne que nous voulons utiliser à la place de la sous-chaîne remplacée. Nous supprimons les espaces indésirables dans notre exemple, mais la fonction peut être utilisée à de nombreuses fins. Par exemple, nous pouvons vouloir nettoyer et normaliser une colonne de numéros de téléphone. Nous pouvons utiliser le REPLACE fonction pour le faire.

Si vous souhaitez supprimer plusieurs caractères d'une chaîne donnée, imbriquez simplement le REPLACE fonctionner une seconde fois. Par exemple, si vous avez une chaîne avec des espaces et des tirets inutiles, vous pouvez utiliser la syntaxe suivante :

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

N'oubliez pas que les arguments de cette fonction dans MySQL sont sensibles à la casse, faites donc attention aux lettres.