Dans MariaDB, MOD()
est une fonction intégrée qui renvoie l'opération modulo. Il renvoie le reste de son premier argument divisé par son deuxième argument.
Syntaxe
La syntaxe ressemble à ceci :
MOD(N,M)
La fonction renvoie le reste de N
divisé par M
.
L'opération peut également être effectuée à l'aide de l'opérateur modulo, vous pouvez donc également utiliser les syntaxes suivantes pour obtenir le même résultat :
N % M
N MOD M
Exemple
Voici un exemple pour illustrer :
SELECT MOD(9, 2);
Résultat :
+-----------+ | MOD(9, 2) | +-----------+ | 1 | +-----------+
En voici d'autres :
SELECT
MOD(8, 2),
MOD(134, 6),
MOD(9, 5),
MOD(9, 10);
Résultat :
+-----------+-------------+-----------+------------+ | MOD(8, 2) | MOD(134, 6) | MOD(9, 5) | MOD(9, 10) | +-----------+-------------+-----------+------------+ | 0 | 2 | 4 | 9 | +-----------+-------------+-----------+------------+
Comparé à l'opérateur modulo
Voici un exemple qui compare les syntaxes de la fonction et des opérateurs :
SELECT
MOD(9, 2),
9 % 2,
9 MOD 2;
Résultat :
+-----------+-------+---------+ | MOD(9, 2) | 9 % 2 | 9 MOD 2 | +-----------+-------+---------+ | 1 | 1 | 1 | +-----------+-------+---------+
Arguments non numériques
Voici un exemple de ce qui se passe lorsque nous fournissons des arguments non numériques :
SELECT MOD('Homer', 'Symptom');
Résultat :
+-------------------------+ | MOD('Homer', 'Symptom') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 3 warnings (0.005 sec)
Voyons l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1292 | Truncated incorrect DOUBLE value: 'Symptom' | | Warning | 1365 | Division by 0 | +---------+------+---------------------------------------------+
Arguments nuls
MOD()
renvoie null
si l'un des arguments est null
:
SELECT
MOD(null, 2),
MOD(9, null),
MOD(null, null);
Résultat :
+--------------+--------------+-----------------+ | MOD(null, 2) | MOD(9, null) | MOD(null, null) | +--------------+--------------+-----------------+ | NULL | NULL | NULL | +--------------+--------------+-----------------+
Arguments manquants
Appel de MOD()
avec le mauvais nombre d'arguments, ou sans aucun argument entraîne une erreur :
SELECT MOD();
Résultat :
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Et :
SELECT MOD(10, 2, 3);
Résultat :
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' 3)' at line 1