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)
Où 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'