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

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

В MariaDB, SUBSTRING() е вградена функция за низ, която връща подниз от даден низ.

SUBSTRING() изисква поне два аргумента; низа и позицията, от която да се извлече поднизът. Той също така приема незадължителен трети аргумент, който ви позволява да укажете колко дълъг трябва да бъде поднизът.

Синтаксис

Синтаксисът приема следните форми:

SUBSTRING(str,pos), 
SUBSTRING(str FROM pos), 
SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)

Където str е низът, pos е началната позиция на подниза и len е броят на знаците за извличане.

Двете формуляри, които използват FROM ключови думи са стандартен SQL синтаксис.

Пример

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

SELECT SUBSTRING('Big fat cat', 5);

Резултат:

+-----------------------------+
| SUBSTRING('Big fat cat', 5) |
+-----------------------------+
| fat cat                     |
+-----------------------------+

Ето същия пример, но използвайки стандартния SQL синтаксис:

SELECT SUBSTRING('Big fat cat' FROM 5);

Резултат:

+---------------------------------+
| SUBSTRING('Big fat cat' FROM 5) |
+---------------------------------+
| fat cat                         |
+---------------------------------+

Дължина на подниз

Ето пример, който определя дължината на подниз за извличане:

SELECT SUBSTRING('Big fat cat', 5, 3);

Резултат:

+--------------------------------+
| SUBSTRING('Big fat cat', 5, 3) |
+--------------------------------+
| fat                            |
+--------------------------------+

И тук използва стандартен SQL синтаксис:

SELECT SUBSTRING('Big fat cat' FROM 5 FOR 3);

Резултат:

+---------------------------------------+
| SUBSTRING('Big fat cat' FROM 5 FOR 3) |
+---------------------------------------+
| fat                                   |
+---------------------------------------+

Отрицателна позиция

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

SELECT SUBSTRING('Big fat cat', -3);

Резултат:

+------------------------------+
| SUBSTRING('Big fat cat', -3) |
+------------------------------+
| cat                          |
+------------------------------+

Отрицателна позиция може да се използва и при използване на стандартния SQL синтаксис:

SELECT SUBSTRING('Big fat cat' FROM -7 FOR 3);

Резултат:

+----------------------------------------+
| SUBSTRING('Big fat cat' FROM -7 FOR 3) |
+----------------------------------------+
| fat                                    |
+----------------------------------------+

В този случай задавам и дължина за подниз.

Режим Oracle

Когато сте в режим на Oracle, начална позиция е 0 (нула) се третира като 1 . Въпреки това, начална позиция е 1 също се третира като 1 .

Това е в контраст с други режими, където 0 ще върне празен низ.

Пример:

SET SQL_MODE=ORACLE;
SELECT 
    SUBSTRING('Big fat cat', 0) AS "0",
    SUBSTRING('Big fat cat', 1) AS "1";

Резултат:

+-------------+-------------+
| 0           | 1           |
+-------------+-------------+
| Big fat cat | Big fat cat |
+-------------+-------------+

Ето го в режим по подразбиране:

SET SQL_MODE=DEFAULT;
SELECT 
    SUBSTRING('Big fat cat', 0) AS "0",
    SUBSTRING('Big fat cat', 1) AS "1";

Резултат:

+------+-------------+
| 0    | 1           |
+------+-------------+
|      | Big fat cat |
+------+-------------+

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

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

SELECT 
    SUBSTRING(null, 3, 3),
    SUBSTRING('Coffee', null, 3),
    SUBSTRING('Coffee', 3, null),
    SUBSTRING(null, null, null);

Резултат:

+-----------------------+------------------------------+------------------------------+-----------------------------+
| SUBSTRING(null, 3, 3) | SUBSTRING('Coffee', null, 3) | SUBSTRING('Coffee', 3, null) | SUBSTRING(null, null, null) |
+-----------------------+------------------------------+------------------------------+-----------------------------+
| NULL                  | NULL                         | NULL                         | NULL                        |
+-----------------------+------------------------------+------------------------------+-----------------------------+

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

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

SELECT SUBSTRING();

Резултат:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 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. Как работи WEEK() в MariaDB

  2. Покажете съпоставянето в MariaDB

  3. 4 функции за връщане на годината от дата в MariaDB

  4. Как PI() работи в MariaDB

  5. Преглед за 2018 г.:7 етапа на MariaDB, които може да сте пропуснали