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

Comment fonctionne MOD() dans MariaDB

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