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'