V MariaDB, TRIM() je vestavěná funkce řetězce, která odstraňuje znaky ze začátku nebo konce řetězce.
Ve výchozím nastavení odstraňuje mezery na začátku a na konci, ale můžete určit, který znak se má odstranit, a také ze které strany/stran jej chcete odstranit.
Syntaxe
TRIM() funkci lze použít následovně:
TRIM([remstr FROM] str) Nebo:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Kde str je řetězec, ze kterého se mají odstranit případné koncové mezery, a remstr je řetězec k odstranění.
Pokud remstr není k dispozici, pak TRIM() odstraní mezery.
Příklad
Zde je základní příklad:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed"; Výsledek:
+------------------------+------------------+| Nestříhaný | Oříznuté |+------------------------+------------------+| Karibský ostrov | Karibský ostrov |+------------------------+------------------+Tento příklad používá nejzákladnější syntaxi. Jediné, co jsme udělali, bylo poskytnout provázek k oříznutí. Nespecifikovali jsme, které znaky se mají oříznout, a tak byly všechny mezery oříznuty z obou stran řetězce.
Můžeme také vidět, že mezera v řetězci zůstává nedotčena.
BOTHArgumentVe výchozím nastavení
TRIM()ořezává obě strany provázku. Můžete však explicitně zadatBOTHpokud si přejete:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed";Výsledek:
+------------------------+------------------+| Nestříhaný | Oříznuté |+------------------------+------------------+| Karibský ostrov | Karibský ostrov |+------------------------+------------------+Dostaneme stejný výsledek jako v předchozím příkladu.
LEADINGArgumentUrčení
LEADINGomezí operaci trimování pouze na začátek řetězce:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed";Výsledek:
+------------------------+--------------------- +| Nestříhaný | Oříznuto |+------------------------+---------------------+ | Karibský ostrov | Karibský ostrov |+------------------------+--------------------- +Vidíme, že na pravé straně oříznutého řetězce stále existují mezery. Byla oříznuta pouze levá část.
TRAILINGArgumentUrčení
TRAILINGomezí operaci trimování pouze na začátek řetězce:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed";Výsledek:
+------------------------+--------------------- +| Nestříhaný | Oříznuto |+------------------------+---------------------+ | Karibský ostrov | Karibský ostrov |+------------------------+--------------------- +Tentokrát byla oříznuta pouze pravá část. Na levé straně oříznutého řetězce stále existují mezery.
Zadejte řetězec k oříznutí
Zde je příklad určení, který znak se má oříznout:
SELECT '...mountain...' AS "Untrimmed", TRIM('.' FROM '...mountain...') AS "Trimmed";Výsledek:
+----------------+----------+| Nestříhaný | Ořezaný |+----------------+----------+| ...hora... | hora |+----------------+----------+Nemusí to být jedna postava. Můžete zadat libovolný řetězec k oříznutí:
SELECT TRIM('.' FROM '.+.mountain.+.') AS "1", TRIM('.+' FROM '.+.mountain.+.') AS "2", TRIM('+.' FROM '.+.mountain.+.') AS "3", TRIM('.+.' FROM '.+.mountain.+.') AS "4";Výsledek:
+--------------+--------------+--------------+- ---------+| 1 | 2 | 3 | 4 |+--------------+--------------+--------------+-- --------+| +.hora.+ | .horský.+. | .+.horský. | hora |+--------------+--------------+--------------+-- --------+Můžete dokonce oříznout část slova, pokud chcete:
SELECT TRIM('moun' FROM 'mountain');Výsledek:
+------------------------------+| TRIM('moun' FROM 'hora') |+------------------------------+| tain |+------------------------------+Můžeme také použít
BOTH,LEADINGaTRAILINGargumenty při zadávání řetězce, který se má oříznout.Příklad:
SELECT TRIM(BOTH '.' FROM '...mountain...') AS "Both", TRIM(LEADING '.' FROM '...mountain...') AS "Leading", TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing";Výsledek:
+----------+-------------+-------------+| Oba | Vedoucí | Trailaing |+----------+-------------+-------------+| hora | hora... | ...horský |+----------+-------------+-------------+Nulové argumenty
Pokud je zadáno
nullargument, výsledek jenull:SELECT TRIM(null);Výsledek:
+-------------+| TRIM(null) |+------------+| NULL |+------------+Režim Oracle
Když ne běžící v režimu Oracle, pokud je výsledek prázdný (tj. má délku nula), výsledkem je prázdný řetězec.
Při spuštění v režimu Oracle je však výsledkem
null.Zde je ve výchozím režimu (tj. ne v režimu Oracle):
SELECT TRIM('');Výsledek:
+-----------+| TRIM('') |+----------+| |+----------+Nyní přejdeme do režimu Oracle:
SET SQL_MODE=ORACLE;A spusťte kód znovu:
SELECT TRIM('');Výsledek:
+-----------+| TRIM('') |+----------+| NULL |+----------+Existuje také alternativní způsob, jak to udělat. Místo přepnutí do režimu Oracle můžete použít
TRIM_ORACLE()jako název funkce.Vraťme se zpět do výchozího režimu:
SET SQL_MODE=DEFAULT;A nyní spusťte
TRIM_ORACLE():SELECT TRIM_ORACLE('');Výsledek:
+------------------+| TRIM_ORACLE('') |+-----------------+| NULL |+-----------------+Chybí argument
Volání
TRIM()bez argumentu vede k chybě:SELECT TRIM();Výsledek:
ERROR 1064 (42000):Máte chybu v syntaxi SQL; zkontrolujte příručku, která odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ')' na řádku 1