I MariaDB, STRCMP()
är en inbyggd strängfunktion som jämför två strängar. Den returnerar 0
, -1
, eller 1
, beroende på om strängarna är samma eller inte.
Här är de möjliga resultaten och vad de betyder:
0 | Strängarna är desamma. |
-1 | Det första argumentet är mindre än det andra enligt den aktuella sorteringsordningen. |
1 | Det första argumentet är större än det andra enligt den aktuella sorteringsordningen |
Syntax
Syntaxen ser ut så här:
STRCMP(expr1,expr2)
Där expr1
är den första strängen och expr2
är den andra strängen.
Exempel
Här är ett grundläggande exempel:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Resultat:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Det här exemplet visar alla möjliga resultat som STRCMP()
kan producera.
Här är ett annat exempel:
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 | +----+---+---+
Tömma strängar vs mellanslag
Att jämföra en tom sträng med ett mellanslag resulterar i 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Resultat:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Nollargument
Skickar null
för alla argument (eller alla argument) returnerar null
:
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Resultat:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Argument saknas
Anropar STRCMP()
med fel antal argument, eller utan att skicka några argument resulterar i ett fel:
SELECT STRCMP();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'