MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak SUBSTRING() działa w MariaDB

W MariaDB, SUBSTRING() jest wbudowaną funkcją ciągu, która zwraca podciąg z podanego ciągu.

SUBSTRING() wymaga co najmniej dwóch argumentów; ciąg i pozycję, z której należy wyodrębnić podciąg. Akceptuje również opcjonalny trzeci argument, który pozwala określić, jak długi powinien być podciąg.

Składnia

Składnia przyjmuje następujące formy:

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

Gdzie str jest ciągiem, pos jest pozycją początkową podciągu, a len to liczba znaków do wyodrębnienia.

Dwie formy, które używają FROM słowa kluczowe są standardową składnią SQL.

Przykład

Oto podstawowy przykład:

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

Wynik:

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

Oto ten sam przykład, ale przy użyciu standardowej składni SQL:

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

Wynik:

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

Długość podciągu

Oto przykład określający długość podciągu do wyodrębnienia:

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

Wynik:

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

A tutaj używa standardowej składni SQL:

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

Wynik:

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

Pozycja ujemna

Określenie ujemnej wartości pozycji powoduje, że pozycja początkowa jest liczona wstecz od końca ciągu:

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

Wynik:

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

Pozycja ujemna może być również użyta przy użyciu standardowej składni SQL:

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

Wynik:

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

W tym przypadku również ustawiłem długość podłańcucha.

Tryb Oracle

W trybie Oracle pozycja początkowa 0 (zero) jest traktowane jako 1 . Jednak pozycja początkowa 1 jest również traktowany jako 1 .

Jest to w przeciwieństwie do innych trybów, w których 0 zwróci pusty ciąg.

Przykład:

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

Wynik:

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

Oto tryb domyślny:

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

Wynik:

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

Argumenty zerowe

Jeśli którykolwiek (lub wszystkie) argumenty są null , SUBSTRING() funkcja zwraca null :

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

Wynik:

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

Brakujące argumenty

Wywołanie SUBSTRING() bez przekazania żadnych argumentów powoduje błąd:

SELECT SUBSTRING();

Wynik:

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. MariaDB Connector/Python Beta już dostępne

  2. 4 funkcje zwracające rok z daty w MariaDB

  3. MariaDB CURRENT_DATE () Wyjaśnione

  4. MariaDB SUBSTTR() Objaśnienie

  5. MariaDB w Tokio