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'