sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona STRCMP() en MariaDB

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'