MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Fonctionnement de STRCMP() dans MariaDB

Dans MariaDB, STRCMP() est une fonction de chaîne intégrée qui compare deux chaînes. Il renvoie 0 , -1 , ou 1 , selon que les chaînes sont identiques ou non.

Voici les résultats possibles et leur signification :

0 Les chaînes sont les mêmes.
-1 Le premier argument est plus petit que le second selon l'ordre de tri actuel.
1 Le premier argument est plus grand que le second selon l'ordre de tri actuel

Syntaxe

La syntaxe ressemble à ceci :

STRCMP(expr1,expr2)

expr1 est la première chaîne, et expr2 est la deuxième chaîne.

Exemple

Voici un exemple de base :

SELECT 
    STRCMP('abc', 'abc') AS "1",
    STRCMP('abc', 'def') AS "2",
    STRCMP('def', 'abc') AS "3";

Résultat :

+---+----+---+
| 1 | 2  | 3 |
+---+----+---+
| 0 | -1 | 1 |
+---+----+---+

Cet exemple montre chaque résultat possible que STRCMP() peut produire.

Voici un autre exemple :

SELECT 
    STRCMP('Cat', 'Cattery') AS "1",
    STRCMP('Dog', 'dog') AS "2",
    STRCMP('Cow 07', 'Cow 007') AS "3";

Résultat :

+----+---+---+
| 1  | 2 | 3 |
+----+---+---+
| -1 | 0 | 1 |
+----+---+---+

Chaînes vides vs espaces

La comparaison d'une chaîne vide à un espace donne 0 :

SELECT 
    STRCMP(' ', ''),
    STRCMP('', ' ');

Résultat :

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

Arguments nuls

Passer null pour tout argument (ou tous les arguments) renvoie null :

SELECT 
    STRCMP(null, 'abc'),
    STRCMP('abc', null),
    STRCMP(null, null);

Résultat :

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

Argument manquant

Appel de STRCMP() avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :

SELECT STRCMP();

Résultat :

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