MySQL har en TRIM()
funktion, der giver dig mulighed for at fjerne indledende og/eller efterstillede mellemrum fra en streng.
Du kan også bruge den til at fjerne andre specificerede tegn fra begge sider (eller begge sider) af strengen.
Denne artikel forklarer, hvordan du fjerner angivne indledende/efterfølgende tegn fra strengen.
Syntaks
TRIM()
funktionen kan bruges på denne måde:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Eller sådan her:
TRIM([remstr FROM] str)
Hvad dette effektivt betyder, er, at du kan fjerne mellemrum eller ethvert andet specificeret tegn fra enten starten af strengen, slutningen af strengen eller fra begge sider af strengen.
Så du kan angive BOTH
at trimme tegn fra begge ender af strengen, eller du kan bruge LEADING
for kun at trimme de angivne tegn i starten af strengen. Ligeledes kan du bruge TRAILING
for kun at fjerne disse tegn fra slutningen af strengen.
remstr
del er, hvor du angiver det tegn, der skal trimmes, og str
del er den faktiske streng, der skal trimmes.
Eksempel
Her er et grundlæggende eksempel på fjernelse af et givet tegn fra begge sider af en streng:
SELECT TRIM('=' FROM '=FRESH COOKIES!=') AS Trimmed;
Resultat:
+----------------+ | Trimmed | +----------------+ | FRESH COOKIES! | +----------------+
Så strengen fjernes for det angivne tegn på begge sider af strengen.
Flere forekomster af det specificerede tegn
Det vil fjerne flere forekomster af det givne tegn (så længe det er inden for en sammenhængende gruppe af de samme indledende/efterfølgende tegn):
SELECT TRIM('=' FROM '====FRESH COOKIES!====') AS Trimmed;
Resultat:
+----------------+ | Trimmed | +----------------+ | FRESH COOKIES! | +----------------+
Fjern kun ledende karakterer
Du kan angive, at kun ledende tegn trimmes. For at gøre dette skal du bruge LEADING
specifikation:
SELECT TRIM(LEADING '=' FROM '====FRESH COOKIES!====') AS Trimmed;
Resultat:
+--------------------+ | Trimmed | +--------------------+ | FRESH COOKIES!==== | +--------------------+
Fjern kun efterfølgende tegn
Du kan angive, at kun de efterfølgende tegn trimmes. For at gøre dette skal du bruge TRAILING
specifikation:
SELECT TRIM(TRAILING '=' FROM '====FRESH COOKIES!====') AS Trimmed;
Resultat:
+--------------------+ | Trimmed | +--------------------+ | ====FRESH COOKIES! | +--------------------+
Fjern en serie af tegn
Du kan også angive, at kun en specifik serie af tegn trimmes:
SELECT TRIM(BOTH '!====' FROM '====FRESH COOKIES!====') AS Trimmed;
Resultat:
+-------------------+ | Trimmed | +-------------------+ | ====FRESH COOKIES | +-------------------+
Du bemærker måske, at jeg brugte BOTH
nøgleord i dette eksempel. Dette er valgfrit. Den samme erklæring kunne omskrives uden den:
SELECT TRIM('!====' FROM '====FRESH COOKIES!====') AS Trimmed;
Resultat:
+-------------------+ | Trimmed | +-------------------+ | ====FRESH COOKIES | +-------------------+
Anden brug af TRIM()
Du kan også bruge TRIM()
for at fjerne bagerste mellemrum, for at fjerne indledende mellemrum eller for at fjerne både indledende og efterstillede mellemrum.