sql >> Database teknologi >  >> RDS >> Mysql

MySQL:hvordan fjerner man dobbelte eller flere mellemrum fra en streng?

Her er et gammelt trick, der ikke kræver regulære udtryk eller komplicerede funktioner.

Du kan bruge udskiftningsfunktionen 3 gange til at håndtere et vilkårligt antal mellemrum, f.eks.:

REPLACE('Dette er min lange streng',' ','<>') 

bliver:

Dette<>er<><><><>min<><><>lange<><><><>streng 

Derefter erstatter du alle forekomster af '><' med en tom streng '' ved at pakke den ind i en anden erstatning:

REPLACE( REPLACE('Dette er min lange streng',' ','<>'), '><','')Dette<>er<>min<>lange<>streng 

Så til sidst konverterer en sidste erstatning '<>' tilbage til et enkelt mellemrum

REPLACE( REPLACE( REPLACE('Dette er min lange streng', ' ','<>'), '><',''), '<>',' ')Dette er min lange streng

Dette eksempel blev oprettet i MYSQL (sæt en SELECT foran), men fungerer på mange sprog.

Bemærk, at du kun har brug for de 3 udskiftningsfunktioner for at håndtere et hvilket som helst antal tegn, der skal erstattes.



  1. Skift prioritet for en konto i en database-mailprofil (SSMS)

  2. Ændre en MySQL-kolonne til at være AUTO_INCREMENT

  3. Hvordan får du din booleske fuldtekstsøgning til at opfange udtrykket C++?

  4. MYSQL:Hvordan kopierer man en hel række fra en tabel til en anden i mysql, hvor den anden tabel har en ekstra kolonne?