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'