sql >> Databasteknik >  >> RDS >> MariaDB

Hur TRIM() fungerar i MariaDB

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 Argument

Som standard är TRIM() trimmer båda sidor av snöret. Du kan dock uttryckligen ange BOTH 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 Argument

Anger 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 Argument

Anger 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 och TRAILING 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 är null :

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

  1. 8 WP-CLI-kommandon för att rensa upp och optimera din webbplats

  2. 7 sätt att returnera dubbletter av rader som har en primärnyckel i MariaDB

  3. 2 sätt att returnera bara de numeriska värdena från en SQLite-databaskolumn

  4. Hur man lägger till ett underformulär till ett formulär i Access 2016