Eine der String-Funktionen in MySQL ist STRCMP()
. Mit dieser Funktion können Sie zwei Zeichenketten nach ihrer Sortierreihenfolge vergleichen.
Die Funktion akzeptiert zwei Argumente. Jedes Argument ist die zu vergleichende Zeichenfolge. Es gibt entweder 1
zurück , -1
, oder 0
, abhängig davon, ob die erste Zeichenfolge größer, kleiner oder gleich lang wie die zweite Zeichenfolge ist, je nach Sortierreihenfolge.
Syntax
Hier ist die Syntax:
STRCMP(expr1,expr2)
Wobei expr1
ist die erste Zeichenfolge und expr2
ist die zweite Zeichenfolge.
Beispiele
Hier ist ein Beispiel, bei dem die erste Zeichenfolge gemäß der Sortierreihenfolge kleiner als die zweite Zeichenfolge ist:
SELECT STRCMP('A', 'B');
Ergebnis:
+------------------+ | STRCMP('A', 'B') | +------------------+ | -1 | +------------------+
Wenn wir die Argumente vertauschen, erhalten wir Folgendes:
SELECT STRCMP('B', 'A');
Ergebnis:
+------------------+ | STRCMP('B', 'A') | +------------------+ | 1 | +------------------+
Und wenn wir für beide Argumente denselben String verwenden, erhalten wir Folgendes:
SELECT STRCMP('A', 'A');
Ergebnis:
+------------------+ | STRCMP('A', 'A') | +------------------+ | 0 | +------------------+
Natürlich können (und werden) die Zeichenketten aus mehr als einem einzelnen Zeichen bestehen:
SELECT STRCMP('A big box', 'Wind and rain') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | -1 | +--------+
Sammlung
Der STRCMP()
Die Funktion verwendet die Sortierung beim Vergleichen der Zeichenfolgen. Dies bedeutet, dass Sie je nach verwendeter Sortierung unterschiedliche Ergebnisse erhalten können. Die folgenden Beispiele demonstrieren dies.
Groß-/Kleinschreibung wird nicht beachtet
In diesem Beispiel führen wir den Vergleich mit einer Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung durch (die _ci
Teil der Sortierung bedeutet Groß-/Kleinschreibung):
SET @lowercase = _utf8mb4 'a' COLLATE utf8mb4_0900_ai_ci; SET @uppercase = _utf8mb4 'A' COLLATE utf8mb4_0900_ai_ci; SELECT STRCMP(@lowercase, @uppercase) AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 0 | +--------+
Groß-/Kleinschreibung beachten
In diesem Beispiel führen wir den Vergleich unter Verwendung einer Sortierung mit Berücksichtigung der Groß-/Kleinschreibung durch (der _cs
Teil der Sortierung bedeutet Groß-/Kleinschreibung):
SET @lowercase = _utf8mb4 'a' COLLATE utf8mb4_0900_as_cs; SET @uppercase = _utf8mb4 'A' COLLATE utf8mb4_0900_as_cs; SELECT STRCMP(@lowercase, @uppercase) AS Result;
Ergebnis:
+--------+ | Result | +--------+ | -1 | +--------+
In MySQL kann die Sortierung auf verschiedenen Ebenen festgelegt werden (z. B. Verbindungsebene, Datenbankebene, Spaltenebene usw.). Wenn Sie sich nicht sicher sind, welche Sortierung verwendet wird, lesen Sie den Abschnitt So finden Sie die Sortierung in MySQL.