MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona STRCMP() in MariaDB

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'