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'