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

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

В MariaDB, SUBSTRING_INDEX() е вградена функция низ. Той връща подниз от низ преди определен брой срещания на посочения разделител.

SUBSTRING_INDEX() изисква при три аргумента; низът, разделителят и броят (т.е. броят на срещанията на този разделител).

Синтаксис

Синтаксисът е така:

SUBSTRING_INDEX(str,delim,count)

Където str е низът, delim е разделителят и count е броят на срещанията на този разделител, който да се използва за определяне на подниз за връщане.

Ако count е положително, всичко вляво от крайния разделител (като се брои отляво) се връща. Ако count е отрицателно, всичко вдясно от крайния разделител (като се брои отдясно) се връща.

Пример

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

SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3);

Резултат:

+-------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3) |
+-------------------------------------------------------+
| /users/homer                                          |
+-------------------------------------------------------+

Отрицателен брой

Посочването на отрицателна стойност за брояча води до преброяването му назад от края на низа:

SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3);

Резултат:

+--------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3) |
+--------------------------------------------------------+
| homer/docs/cat_vids                                    |
+--------------------------------------------------------+

Разграничителят не е намерен

Ако разделителят не съществува в низа, се връща целия низ:

SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3);

Резултат:

+-------------------------------------------------------+
| SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3) |
+-------------------------------------------------------+
| /users/homer/docs/cat_vids                            |
+-------------------------------------------------------+

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

Ако някой (или всички) от аргументите са null , SUBSTRING_INDEX() функцията връща null :

SELECT 
    SUBSTRING_INDEX(null, '/', 3) AS "1",
    SUBSTRING_INDEX('/users/homer/docs/cat_vids', null, 3) AS "2",
    SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', null) AS "3",
    SUBSTRING_INDEX(null, null, null) AS "4";

Резултат:

+------+------+------+------+
| 1    | 2    | 3    | 4    |
+------+------+------+------+
| NULL | NULL | NULL | NULL |
+------+------+------+------+

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

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

SELECT SUBSTRING_INDEX();

Резултат:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Galera Cluster Recovery 101 - Дълбоко потапяне в мрежовото разделяне

  2. Как работи MONTH() в MariaDB

  3. MariaDB Единици за дата и време

  4. Обяснение на оператора MariaDB UNION

  5. Как СЕГА() работи в MariaDB