MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como STRCMP() funciona no MariaDB


No MariaDB, STRCMP() é uma função de string interna que compara duas strings. Ele retorna 0 , -1 , ou 1 , dependendo se as strings são iguais ou não.

Aqui estão os resultados possíveis e o que eles significam:
0 As strings são as mesmas.
-1 O primeiro argumento é menor que o segundo de acordo com a ordem de classificação atual.
1 O primeiro argumento é maior que o segundo de acordo com a ordem de classificação atual

Sintaxe


A sintaxe fica assim:
STRCMP(expr1,expr2)

Onde expr1 é a primeira string e expr2 é a segunda corda.

Exemplo


Segue um exemplo básico:
SELECT 
    STRCMP('abc', 'abc') AS "1",
    STRCMP('abc', 'def') AS "2",
    STRCMP('def', 'abc') AS "3";

Resultado:
+---+----+---+
| 1 | 2  | 3 |
+---+----+---+
| 0 | -1 | 1 |
+---+----+---+

Este exemplo demonstra cada resultado possível que STRCMP() pode produzir.

Aqui está outro exemplo:
SELECT 
    STRCMP('Cat', 'Cattery') AS "1",
    STRCMP('Dog', 'dog') AS "2",
    STRCMP('Cow 07', 'Cow 007') AS "3";

Resultado:
+----+---+---+
| 1  | 2 | 3 |
+----+---+---+
| -1 | 0 | 1 |
+----+---+---+

Strings vazias vs espaços


Comparar uma string vazia com um espaço resulta em 0 :
SELECT 
    STRCMP(' ', ''),
    STRCMP('', ' ');

Resultado:
+-----------------+-----------------+
| STRCMP(' ', '') | STRCMP('', ' ') |
+-----------------+-----------------+
|               0 |               0 |
+-----------------+-----------------+

Argumentos nulos


Passando null para qualquer argumento (ou todos os argumentos) retorna null :
SELECT 
    STRCMP(null, 'abc'),
    STRCMP('abc', null),
    STRCMP(null, null);

Resultado:
+---------------------+---------------------+--------------------+
| STRCMP(null, 'abc') | STRCMP('abc', null) | STRCMP(null, null) |
+---------------------+---------------------+--------------------+
|                NULL |                NULL |               NULL |
+---------------------+---------------------+--------------------+

Argumento ausente


Chamando STRCMP() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:
SELECT STRCMP();

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'