MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie STRCMP() in MariaDB funktioniert

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'