I MariaDB, TRIM()
är en inbyggd strängfunktion som tar bort tecken från början eller slutet av en sträng.
Som standard tar den bort inledande och efterföljande mellanslag, men du kan ange vilken karaktär som ska tas bort, samt vilken sida/sidor du vill att den ska tas bort från.
Syntax
TRIM()
funktionen kan användas enligt följande:
TRIM([remstr FROM] str)
Eller:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Där str
är strängen för att ta bort eventuella efterföljande mellanslag från, och remstr
är strängen som ska tas bort.
Om remstr
inte tillhandahålls, då TRIM()
tar bort mellanslag.
Exempel
Här är ett grundläggande exempel:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+------------------------+| Otrimmad | Trimmad |+------------------------+------------------------+| Karibiska ön | Karibiska ön |+------------------------+-----------------+Det här exemplet använder den mest grundläggande syntaxen. Allt vi gjorde var att tillhandahålla snöret för att trimma. Vi angav inte vilka tecken som skulle trimmas, så alla mellanslag trimmades från båda sidor av strängen.
Vi kan också se att utrymmet i strängen förblir intakt.
BOTH
ArgumentSom standard är
TRIM()
trimmer båda sidor av snöret. Du kan dock uttryckligen angeBOTH
om du vill:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+------------------------+| Otrimmad | Trimmad |+------------------------+------------------------+| Karibiska ön | Karibiska ön |+------------------------+-----------------+Vi får samma resultat som föregående exempel.
Den
LEADING
ArgumentAnger
LEADING
begränsar trimningsoperationen till bara början av strängen:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+--------------------------- +| Otrimmad | Trimmad |+------------------------+----------------------------+ | Karibiska ön | Karibiska ön |+------------------------+-------------------------------- +Vi kan se att utrymmen fortfarande finns till höger om det klippta snöret. Endast den vänstra delen trimmades.
TRAILING
ArgumentAnger
TRAILING
begränsar trimningsoperationen till bara början av strängen:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+--------------------------- +| Otrimmad | Trimmad |+------------------------+----------------------------+ | Karibiska ön | Karibiska ön |+------------------------+-------------------------------- +Den här gången trimmades bara den högra delen. Mellanslag finns fortfarande till vänster om den klippta strängen.
Ange en sträng som ska trimmas
Här är ett exempel på hur du anger vilket tecken som ska trimmas:
SELECT '...mountain...' AS "Untrimmed", TRIM('.' FROM '...mountain...') AS "Trimmed";
Resultat:
+----------------+----------+| Otrimmad | Trimmad |+----------------+----------+| ...berg... | berg |+----------------+----------+Det behöver inte vara en enda karaktär. Du kan ange vilken sträng som helst som ska trimmas:
SELECT TRIM('.' FROM '.+.mountain.+.') AS "1", TRIM('.+' FROM '.+.mountain.+.') AS "2", TRIM('+.' FROM '.+.mountain.+.') AS "3", TRIM('.+.' FROM '.+.mountain.+.') AS "4";
Resultat:
+--------------+--------------+--------------+- ----------+| 1 | 2 | 3 | 4 |+--------------------------------------- --------+| +.berg.+ | .mountain.+. | .+.berg. | berg |+--------------+--------------+--------------+-- --------+Du kan till och med trimma en del av ordet om du vill:
SELECT TRIM('moun' FROM 'mountain');
Resultat:
+-------------------------------------+| TRIM('berg' FRÅN 'berg') |+------------------------------------+| tain |+-------------------------------------+Vi kan också använda
BOTH
,LEADING
ochTRAILING
argument när du anger strängen som ska trimmas.Exempel:
SELECT TRIM(BOTH '.' FROM '...mountain...') AS "Both", TRIM(LEADING '.' FROM '...mountain...') AS "Leading", TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing";
Resultat:
+----------+-------------+------------+| Båda | Ledande | Efterföljande |+----------+-------------+------------+| berg | berg... | ...berg |+----------+-------------+------------+Nollargument
Om det ges en
null
argument, resultatet ärnull
:SELECT TRIM(null);
Resultat:
+------------+| TRIM(null) |+------------+| NULL |+------------+Oracle Mode
När inte körs i Oracle-läge, om resultatet är tomt (dvs. det har en längd på noll) är resultatet en tom sträng.
Men när du kör i Oracle-läge är resultatet
null
.Här är den i standardläge (dvs inte i Oracle-läge):
SELECT TRIM('');
Resultat:
+----------+| TRIM('') |+----------+| |+----------+Låt oss nu byta till Oracle-läge:
SET SQL_MODE=ORACLE;
Och kör koden igen:
SELECT TRIM('');
Resultat:
+----------+| TRIM('') |+----------+| NULL |+----------+Det finns också ett alternativt sätt att göra detta. Istället för att byta till Oracle-läge kan du använda
TRIM_ORACLE()
som funktionsnamn.Låt oss växla tillbaka till standardläget:
SET SQL_MODE=DEFAULT;
Och kör nu
TRIM_ORACLE()
:SELECT TRIM_ORACLE('');
Resultat:
+----------------+| TRIM_ORACLE('') |+----------------+| NULL |+-----------------+Argument saknas
Anropar
TRIM()
utan argument resulterar i ett fel:SELECT TRIM();
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ')' på rad 1