sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona MOD() en MariaDB

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