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

MariaDB SUBSTTR() Objaśnienie

W MariaDB SUBSTR() jest synonimem SUBSTRING() .

Jest to wbudowana funkcja ciągów znaków, która zwraca podciąg z podanego ciągu.

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:

SUBSTR(str,pos), 
SUBSTR(str FROM pos), 
SUBSTR(str,pos,len),
SUBSTR(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 SUBSTR('Good doggy', 6);

Wynik:

+-------------------------+
| SUBSTR('Good doggy', 6) |
+-------------------------+
| doggy                   |
+-------------------------+

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

SELECT SUBSTR('Good doggy' FROM 6);

Wynik:

+-----------------------------+
| SUBSTR('Good doggy' FROM 6) |
+-----------------------------+
| doggy                       |
+-----------------------------+

Długość podciągu

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

SELECT SUBSTR('Good doggy', 6, 3);

Wynik:

+----------------------------+
| SUBSTR('Good doggy', 6, 3) |
+----------------------------+
| dog                        |
+----------------------------+

A tutaj używa standardowej składni SQL:

SELECT SUBSTR('Good doggy' FROM 6 FOR 3);

Wynik:

+-----------------------------------+
| SUBSTR('Good doggy' FROM 6 FOR 3) |
+-----------------------------------+
| dog                               |
+-----------------------------------+

Pozycja ujemna

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

SELECT SUBSTR('Good doggy', -5);

Wynik:

+--------------------------+
| SUBSTR('Good doggy', -5) |
+--------------------------+
| doggy                    |
+--------------------------+

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

SELECT SUBSTR('Good doggy' FROM -5 FOR 3);

Wynik:

+------------------------------------+
| SUBSTR('Good doggy' FROM -5 FOR 3) |
+------------------------------------+
| dog                                |
+------------------------------------+

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 
    SUBSTR('Good doggy', 0) AS "0",
    SUBSTR('Good doggy', 1) AS "1";

Wynik:

+------------+------------+
| 0          | 1          |
+------------+------------+
| Good doggy | Good doggy |
+------------+------------+

Oto tryb domyślny:

SET SQL_MODE=DEFAULT;
SELECT 
    SUBSTR('Good doggy', 0) AS "0",
    SUBSTR('Good doggy', 1) AS "1";

Wynik:

+------+------------+
| 0    | 1          |
+------+------------+
|      | Good doggy |
+------+------------+

Argumenty zerowe

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

SELECT 
    SUBSTR(null, 3, 3),
    SUBSTR('Doggy', null, 3),
    SUBSTR('Doggy', 3, null),
    SUBSTR(null, null, null);

Wynik:

+--------------------+--------------------------+--------------------------+--------------------------+
| SUBSTR(null, 3, 3) | SUBSTR('Doggy', null, 3) | SUBSTR('Doggy', 3, null) | SUBSTR(null, null, null) |
+--------------------+--------------------------+--------------------------+--------------------------+
| NULL               | NULL                     | NULL                     | NULL                     |
+--------------------+--------------------------+--------------------------+--------------------------+

Brakujące argumenty

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

SELECT SUBSTR();

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. Co to jest MariaDB ColumnStore?

  2. MariaDB JSON_VALID() Objaśnienie

  3. MariaDB SUBSTTR() Objaśnienie

  4. Jak wydajny jest Twój węzeł ProxySQL?

  5. Jak działa TAN() w MariaDB