I MariaDB, STRCMP()
er en indbygget strengfunktion, der sammenligner to strenge. Det returnerer 0
, -1
eller 1
, alt efter om strengene er ens eller ej.
Her er de mulige resultater, og hvad de betyder:
0 | Strengene er de samme. |
-1 | Det første argument er mindre end det andet i henhold til den aktuelle sorteringsrækkefølge. |
1 | Det første argument er større end det andet i henhold til den aktuelle sorteringsrækkefølge |
Syntaks
Syntaksen ser sådan ud:
STRCMP(expr1,expr2)
Hvor expr1
er den første streng, og expr2
er den anden streng.
Eksempel
Her er et grundlæggende eksempel:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Resultat:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Dette eksempel viser hvert muligt udfald, som STRCMP()
kan producere.
Her er et andet eksempel:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3";
Resultat:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Tomme strenge vs. mellemrum
Sammenligning af en tom streng med et mellemrum resulterer i 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Resultat:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Nul-argumenter
Sender null
for ethvert argument (eller alle argumenter) returnerer null
:
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Resultat:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Manglende argument
Kalder STRCMP()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT STRCMP();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'