Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verwenden Sie STRCMP() zum Vergleichen von 2 Strings in MySQL

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.