En MariaDB, STRCMP()
es una función de cadena incorporada que compara dos cadenas. Devuelve 0
, -1
, o 1
, dependiendo de si las cadenas son iguales o no.
Estos son los posibles resultados y lo que significan:
0 | Las cadenas son las mismas. |
-1 | El primer argumento es más pequeño que el segundo según el orden de clasificación actual. |
1 | El primer argumento es más grande que el segundo según el orden de clasificación actual |
Sintaxis
La sintaxis es así:
STRCMP(expr1,expr2)
Donde expr1
es la primera cadena, y expr2
es la segunda cadena.
Ejemplo
He aquí un ejemplo 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 ejemplo demuestra cada resultado posible que STRCMP()
puede producir.
Aquí hay otro ejemplo:
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 | +----+---+---+
Cadenas vacías frente a espacios
Comparar una cadena vacía con un espacio da como resultado 0
:
SELECT
STRCMP(' ', ''),
STRCMP('', ' ');
Resultado:
+-----------------+-----------------+ | STRCMP(' ', '') | STRCMP('', ' ') | +-----------------+-----------------+ | 0 | 0 | +-----------------+-----------------+
Argumentos nulos
Pasando null
para cualquier argumento (o todos los argumentos) devuelve 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 faltante
Llamando a STRCMP()
con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:
SELECT STRCMP();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STRCMP'