En MariaDB, MOD()
es una función integrada que devuelve la operación de módulo. Devuelve el resto de su primer argumento dividido por su segundo argumento.
Sintaxis
La sintaxis es así:
MOD(N,M)
La función devuelve el resto de N
dividido por M
.
La operación también se puede realizar mediante el operador módulo, por lo que también puede utilizar las siguientes sintaxis para lograr el mismo resultado:
N % M
N MOD M
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT MOD(9, 2);
Resultado:
+-----------+ | MOD(9, 2) | +-----------+ | 1 | +-----------+
Aquí hay algunos más:
SELECT
MOD(8, 2),
MOD(134, 6),
MOD(9, 5),
MOD(9, 10);
Resultado:
+-----------+-------------+-----------+------------+ | MOD(8, 2) | MOD(134, 6) | MOD(9, 5) | MOD(9, 10) | +-----------+-------------+-----------+------------+ | 0 | 2 | 4 | 9 | +-----------+-------------+-----------+------------+
Comparado con el Operador Modulo
Aquí hay un ejemplo que compara las sintaxis entre la función y los operadores:
SELECT
MOD(9, 2),
9 % 2,
9 MOD 2;
Resultado:
+-----------+-------+---------+ | MOD(9, 2) | 9 % 2 | 9 MOD 2 | +-----------+-------+---------+ | 1 | 1 | 1 | +-----------+-------+---------+
Argumentos no numéricos
Este es un ejemplo de lo que sucede cuando proporcionamos argumentos no numéricos:
SELECT MOD('Homer', 'Symptom');
Resultado:
+-------------------------+ | MOD('Homer', 'Symptom') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 3 warnings (0.005 sec)
Veamos la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1292 | Truncated incorrect DOUBLE value: 'Symptom' | | Warning | 1365 | Division by 0 | +---------+------+---------------------------------------------+
Argumentos nulos
MOD()
devuelve null
si alguno de los argumentos es null
:
SELECT
MOD(null, 2),
MOD(9, null),
MOD(null, null);
Resultado:
+--------------+--------------+-----------------+ | MOD(null, 2) | MOD(9, null) | MOD(null, null) | +--------------+--------------+-----------------+ | NULL | NULL | NULL | +--------------+--------------+-----------------+
Argumentos faltantes
Llamando a MOD()
con el número incorrecto de argumentos, o sin ningún argumento da como resultado un error:
SELECT MOD();
Resultado:
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
Y:
SELECT MOD(10, 2, 3);
Resultado:
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