MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи TRIM() в MariaDB

В MariaDB, TRIM() е вградена функция за низ, която премахва знаци от началото или края на низ.

По подразбиране премахва началните и крайните интервали, но можете да посочите кой знак да премахнете, както и от коя страна/и искате да бъде премахнат.

Синтаксис

TRIM() функцията може да се използва, както следва:

TRIM([remstr FROM] str) 

Или:

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) 

Където str е низът за премахване на всякакви крайни интервали и remstr е низът за премахване.

Ако remstr не е предоставен, тогава TRIM() премахва интервалите.

Пример

Ето един основен пример:

SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM('   Caribbean Island   ') AS "Trimmed"; 

Резултат:

+-----------------------+----------------+| Неподрязани | Подрязани |+------------------+----------------+| Карибски остров | Карибски остров |+-----------------------+----------------+ 

Този пример използва най-основния синтаксис. Всичко, което направихме, беше да предоставим връвта за подрязване. Не посочихме кой знак/и да отрежем и така всички интервали бяха изрязани от двете страни на низа.

Можем също да видим, че пространството в низа остава непокътнато.

BOTH Аргумент

По подразбиране TRIM() подрязва и двете страни на низа. Можете обаче изрично да посочите BOTH ако желаете:

SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM(BOTH FROM '   Caribbean Island   ') AS "Trimmed"; 

Резултат:

+-----------------------+----------------+| Неподрязани | Подрязани |+------------------+----------------+| Карибски остров | Карибски остров |+-----------------------+----------------+ 

Получаваме същия резултат като предишния пример.

LEADING Аргумент

Посочване на LEADING ограничава операцията за подрязване само до началото на низа:

SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM(LEADING FROM '   Caribbean Island   ') AS "Trimmed"; 

Резултат:

+-----------------------+--------------------- +| Неподрязани | Подрязани |+-------------------+---------------------+ | Карибски остров | Карибски остров |+-----------------------+--------------------- +

Можем да видим, че все още съществуват интервали от дясната страна на подрязания низ. Само лявата част беше подрязана.

TRAILING Аргумент

Посочване на TRAILING ограничава операцията за подрязване само до началото на низа:

SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM(TRAILING FROM '   Caribbean Island   ') AS "Trimmed"; 

Резултат:

+-----------------------+--------------------- +| Неподрязани | Подрязани |+-------------------+---------------------+ | Карибски остров | Карибски остров |+-----------------------+--------------------- +

Този път беше подрязана само дясната част. Все още има интервали от лявата страна на подрязания низ.

Посочете низ за отрязване

Ето пример за определяне кой знак да се отреже:

SELECT 
    '...mountain...' AS "Untrimmed",
    TRIM('.' FROM '...mountain...') AS "Trimmed"; 

Резултат:

+----------------+---------+| Неподрязани | Подрязани |+----------------+----------+| ...планина... | планина |+----------------+---------+

Не е задължително да е единичен знак. Можете да посочите произволен низ за отрязване:

SELECT 
    TRIM('.' FROM '.+.mountain.+.') AS "1",
    TRIM('.+' FROM '.+.mountain.+.') AS "2",
    TRIM('+.' FROM '.+.mountain.+.') AS "3",
    TRIM('.+.' FROM '.+.mountain.+.') AS "4"; 

Резултат:

+--------------+--------------+--------------+- ---------+| 1 | 2 | 3 | 4 |+--------------+--------------+--------------+-- --------+| +.планина.+ | .планина.+. | .+.планина. | планина |+--------------+--------------+--------------+-- --------+

Можете дори да отрежете част от думата, ако искате:

SELECT TRIM('moun' FROM 'mountain'); 

Резултат:

+------------------------------+| TRIM('moun' FROM 'mountain') |+------------------------------+| замърсявам |+------------------------------+

Можем също да използваме BOTH , LEADING и TRAILING аргументи, когато указвате низа за отрязване.

Пример:

SELECT 
    TRIM(BOTH '.' FROM '...mountain...') AS "Both",
    TRIM(LEADING '.' FROM '...mountain...') AS "Leading",
    TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing"; 

Резултат:

+----------+------------+------------+| И двете | Водещ | Следене |+----------+------------+------------+| планина | планина... | ...планина |+----------+------------+------------+

Нулеви аргументи

Ако е дадено null аргумент, резултатът е null :

SELECT TRIM(null); 

Резултат:

+-----------+| TRIM(null) |+-----------+| NULL |+------------+

Режим Oracle

Когато не работи в режим на Oracle, ако резултатът е празен (т.е. има дължина нула), резултатът е празен низ.

Въпреки това, когато работите в режим на Oracle, резултатът е null .

Тук е в режим по подразбиране (т.е. не в режим на Oracle):

SELECT TRIM(''); 

Резултат:

+---------+| TRIM('') |+----------+| |+---------+

Сега нека преминем към режим на Oracle:

SET SQL_MODE=ORACLE; 

И стартирайте кода отново:

SELECT TRIM(''); 

Резултат:

+---------+| TRIM('') |+----------+| NULL |+----------+

Има и алтернативен начин да направите това. Вместо да превключвате в режим на Oracle, можете да използвате TRIM_ORACLE() като име на функцията.

Нека се върнем към режима по подразбиране:

SET SQL_MODE=DEFAULT; 

И сега стартирайте TRIM_ORACLE() :

SELECT TRIM_ORACLE(''); 

Резултат:

+-----------------+| TRIM_ORACLE('') |+----------------+| NULL |++-----------------+

Липсващ аргумент

Извикване на TRIM() без аргумент води до грешка:

SELECT TRIM(); 

Резултат:

ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB за правилния синтаксис, който да използвате близо до ')' на ред 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 8 начина за добавяне на дни към дата в MariaDB

  2. Моята MySQL база данни е извън дисковото пространство

  3. Как да архивирате вашата Moodle MariaDB база данни

  4. HOUR() срещу EXTRACT(HOUR ...) в MariaDB:Каква е разликата?

  5. MariaDB JSON_ARRAYAGG() Обяснено