sql >> Database teknologi >  >> RDS >> MariaDB

Hvordan SUBSTRING() virker i MariaDB

I MariaDB, SUBSTRING() er en indbygget strengfunktion, der returnerer en understreng fra en given streng.

SUBSTRING() kræver mindst to argumenter; strengen og den position, som understrengen skal udtrækkes fra. Den accepterer også et valgfrit tredje argument, der giver dig mulighed for at angive, hvor lang understrengen skal være.

Syntaks

Syntaksen har følgende former:

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

Hvor str er strengen, pos er startpositionen for understrengen, og len er antallet af tegn, der skal udtrækkes.

De to formularer, der bruger FROM nøgleord er standard SQL-syntaks.

Eksempel

Her er et grundlæggende eksempel:

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

Resultat:

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

Her er det samme eksempel, men ved at bruge standard SQL-syntaks:

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

Resultat:

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

Længde af understreng

Her er et eksempel, der angiver længden af ​​den understreng, der skal udtrækkes:

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

Resultat:

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

Og her bruger den standard SQL-syntaks:

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

Resultat:

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

Negativ position

Angivelse af en negativ værdi for positionen bevirker, at startpositionen tælles baglæns fra slutningen af ​​strengen:

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

Resultat:

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

En negativ position kan også bruges ved brug af standard SQL-syntaks:

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

Resultat:

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

I dette tilfælde indstiller jeg også en længde for understrengen.

Oracle Mode

Når du er i Oracle-tilstand, en startposition på 0 (nul) behandles som 1 . Men en startposition på 1 behandles også som 1 .

Dette er i modsætning til andre tilstande, hvor 0 returnerer en tom streng.

Eksempel:

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

Resultat:

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

Her er den i standardtilstand:

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

Resultat:

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

Nul-argumenter

Hvis nogen (eller alle) af argumenterne er null , SUBSTRING() funktion returnerer null :

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

Resultat:

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

Manglende argumenter

Kalder SUBSTRING() uden at sende nogen argumenter resulterer det i en fejl:

SELECT SUBSTRING();

Resultat:

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. Kan ikke bruge tabellen med navnet bruger i postgresql hibernate

  2. Hvordan ændrer man tegnkodningen af ​​en postgres-database?

  3. Introduktion til SQL Server Identity

  4. Hvordan får man UTF-8 til at fungere i Java webapps?