V MariaDB, STRCMP() je vestavěná funkce řetězce, která porovnává dva řetězce. Vrací 0 , -1 , nebo 1 , v závislosti na tom, zda jsou řetězce stejné nebo ne.
Zde jsou možné výsledky a jejich význam:
0 | Řetězce jsou stejné. |
-1 | První argument je menší než druhý podle aktuálního pořadí řazení. |
1 | První argument je větší než druhý podle aktuálního pořadí řazení |
Syntaxe
Syntaxe vypadá takto:
STRCMP(expr1,expr2)
Kde expr1 je první řetězec a expr2 je druhý řetězec.
Příklad
Zde je základní příklad:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3"; Výsledek:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Tento příklad ukazuje každý možný výsledek, který STRCMP() může produkovat.
Zde je další příklad:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3"; Výsledek:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Prázdné řetězce vs mezery
Výsledkem porovnání prázdného řetězce s mezerou je 0 :
SELECT
STRCMP(' ', ''),
STRCMP('', ' '); Výsledek:
+-----------------+-----------------+
| STRCMP(' ', '') | STRCMP('', ' ') |
+-----------------+-----------------+
| 0 | 0 |
+-----------------+-----------------+ Nulové argumenty
Předávání null pro jakýkoli argument (nebo všechny argumenty) vrátí null :
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null); Výsledek:
+---------------------+---------------------+--------------------+
| STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) |
+---------------------+---------------------+--------------------+
| NULL | NULL | NULL |
+---------------------+---------------------+--------------------+ Chybí argument
Volání STRCMP() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT STRCMP(); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'