In MariaDB STRCMP()
ist eine eingebaute String-Funktion, die zwei Strings vergleicht. Es gibt 0
zurück , -1
, oder 1
, abhängig davon, ob die Zeichenfolgen gleich sind oder nicht.
Hier sind die möglichen Ergebnisse und ihre Bedeutung:
0 | Die Zeichenketten sind gleich. |
-1 | Das erste Argument ist gemäß der aktuellen Sortierreihenfolge kleiner als das zweite. |
1 | Das erste Argument ist gemäß der aktuellen Sortierreihenfolge größer als das zweite |
Syntax
Die Syntax lautet wie folgt:
STRCMP(expr1,expr2)
Wobei expr1
ist die erste Zeichenfolge und expr2
ist die zweite Zeichenfolge.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Ergebnis:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Dieses Beispiel zeigt jedes mögliche Ergebnis, das STRCMP()
produzieren kann.
Hier ist ein weiteres Beispiel:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3";
Ergebnis:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Leere Zeichenfolgen vs. Leerzeichen
Der Vergleich einer leeren Zeichenfolge mit einem Leerzeichen ergibt 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Ergebnis:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Null-Argumente
Übergabe von null
für jedes Argument (oder alle Argumente) wird null
zurückgegeben :
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Ergebnis:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Fehlendes Argument
Aufruf von STRCMP()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT STRCMP();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'