Dans MariaDB, l'opérateur modulo (%
) renvoie l'opération modulo. Il renvoie le reste de son premier argument divisé par son deuxième argument.
Syntaxe
La syntaxe ressemble à ceci :
N % M
Cela renvoie le reste de N
divisé par M
.
L'opération peut également être effectuée à l'aide du MOD
mot-clé et le MOD()
une fonction. Vous pouvez donc utiliser les syntaxes suivantes pour obtenir le même résultat :
MOD(N,M)
N MOD M
Exemple
Voici un exemple pour illustrer l'opérateur modulo :
SELECT 9 % 2;
Résultat :
+-------+ | 9 % 2 | +-------+ | 1 | +-------+
En voici d'autres :
SELECT
8 % 2,
134 % 27,
9 % 5,
9 % 10;
Résultat :
+-------+----------+-------+--------+ | 8 % 2 | 134 % 27 | 9 % 5 | 9 % 10 | +-------+----------+-------+--------+ | 0 | 26 | 4 | 9 | +-------+----------+-------+--------+
Par rapport à MOD
&MOD()
Voici un exemple qui compare les syntaxes de la fonction et des opérateurs :
SELECT
9 % 2,
9 MOD 2,
MOD(9, 2);
Résultat :
+-------+---------+-----------+ | 9 % 2 | 9 MOD 2 | MOD(9, 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 'Bird' % 'Dog';
Résultat :
+----------------+ | 'Bird' % 'Dog' | +----------------+ | NULL | +----------------+ 1 row in set, 3 warnings (0.000 sec)
Voyons l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Bird' | | Warning | 1292 | Truncated incorrect DOUBLE value: 'Dog' | | Warning | 1365 | Division by 0 | +---------+------+------------------------------------------+
Opérandes nuls
Le résultat est null
si l'un des opérandes est null
:
SELECT
null % 2,
134 % null,
null % null;
Résultat :
+----------+------------+-------------+ | null % 2 | 134 % null | null % null | +----------+------------+-------------+ | NULL | NULL | NULL | +----------+------------+-------------+