In MariaDB, STRCMP()
è una funzione di stringa incorporata che confronta due stringhe. Restituisce 0
, -1
o 1
, a seconda che le stringhe siano uguali o meno.
Ecco i possibili risultati e cosa significano:
0 | Le stringhe sono le stesse. |
-1 | Il primo argomento è più piccolo del secondo in base all'ordinamento corrente. |
1 | Il primo argomento è maggiore del secondo in base all'ordinamento corrente |
Sintassi
La sintassi è questa:
STRCMP(expr1,expr2)
Dove expr1
è la prima stringa e expr2
è la seconda stringa.
Esempio
Ecco un esempio di base:
SELECT
STRCMP('abc', 'abc') AS "1",
STRCMP('abc', 'def') AS "2",
STRCMP('def', 'abc') AS "3";
Risultato:
+---+----+---+ | 1 | 2 | 3 | +---+----+---+ | 0 | -1 | 1 | +---+----+---+
Questo esempio mostra ogni possibile risultato che STRCMP()
può produrre.
Ecco un altro esempio:
SELECT
STRCMP('Cat', 'Cattery') AS "1",
STRCMP('Dog', 'dog') AS "2",
STRCMP('Cow 07', 'Cow 007') AS "3";
Risultato:
+----+---+---+ | 1 | 2 | 3 | +----+---+---+ | -1 | 0 | 1 | +----+---+---+
Stringhe vuote vs spazi
Confrontando una stringa vuota con uno spazio si ottiene 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Risultato:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Argomenti nulli
Passaggio null
per qualsiasi argomento (o tutti gli argomenti) restituisce null
:
SELECT
STRCMP(null, 'abc'),
STRCMP('abc', null),
STRCMP(null, null);
Risultato:
+---------------------+---------------------+--------------------+ | STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) | +---------------------+---------------------+--------------------+ | NULL | NULL | NULL | +---------------------+---------------------+--------------------+
Argomento mancante
Chiamando STRCMP()
con il numero errato di argomenti o senza passare alcun argomento genera un errore:
SELECT STRCMP();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'