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

Jak SUBSTRING_INDEX() działa w MariaDB

W MariaDB, SUBSTRING_INDEX() jest wbudowaną funkcją ciągu. Zwraca podciąg z ciągu przed określoną liczbą wystąpień określonego ogranicznika.

SUBSTRING_INDEX() wymaga trzech argumentów; ciąg, ogranicznik i liczba (tj. liczba wystąpień tego ogranicznika).

Składnia

Składnia wygląda tak:

SUBSTRING_INDEX(str,delim,count)

Gdzie str jest ciągiem, delim jest ogranicznikiem, a count to liczba wystąpień tego ogranicznika, który zostanie użyty do określenia podciągu do zwrócenia.

Jeśli count jest dodatnia, zwracane jest wszystko na lewo od końcowego ogranicznika (licząc od lewej). Jeśli count jest ujemne, zwracane jest wszystko na prawo od ostatniego ogranicznika (licząc od prawej).

Przykład

Oto podstawowy przykład:

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

Wynik:

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

Liczba ujemna

Określenie ujemnej wartości licznika powoduje, że jest on liczony wstecz od końca ciągu:

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

Wynik:

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

Nie znaleziono separatora

Jeśli ogranicznik nie istnieje w ciągu, zwracany jest cały ciąg:

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

Wynik:

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

Argumenty zerowe

Jeśli którykolwiek (lub wszystkie) argumenty są null , SUBSTRING_INDEX() funkcja zwraca 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";

Wynik:

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

Brakujące argumenty

Wywołanie SUBSTRING_INDEX() bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT SUBSTRING_INDEX();

Wynik:

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. Szybuj wyżej w chmurze dzięki MariaDB SkySQL

  2. Ogłaszamy obsługę MariaDB 10.2 — ClusterControl 1.5

  3. Jak działa PI() w MariaDB

  4. Ciągi formatu daty MariaDB

  5. Jak SUBSTRING_INDEX() działa w MariaDB