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

MySQL :comment supprimer les espaces doubles ou plus d'une chaîne ?

Voici une vieille astuce qui ne nécessite pas d'expressions régulières ou de fonctions compliquées.

Vous pouvez utiliser la fonction de remplacement 3 fois pour gérer n'importe quel nombre d'espaces, comme ceci :

REPLACE('This is    my   long    string',' ','<>')

devient :

This<>is<><><><>my<><><>long<><><><>string

Ensuite, vous remplacez toutes les occurrences de '><' par une chaîne vide '' en l'enveloppant dans un autre remplacement :

REPLACE(
  REPLACE('This is    my   long    string',' ','<>'),
    '><',''
)

This<>is<>my<>long<>string

Enfin, un dernier remplacement convertit le '<>' en un seul espace

REPLACE(
  REPLACE(
    REPLACE('This is    my   long    string',
      ' ','<>'),
    '><',''),
  '<>',' ')

This is my long string

Cet exemple a été créé en MYSQL (mettez un SELECT devant) mais fonctionne dans de nombreuses langues.

Notez que vous n'avez besoin que des 3 fonctions de remplacement pour gérer n'importe quel nombre de caractères à remplacer.