MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como MOD() funciona no MariaDB


No MariaDB, MOD() é uma função interna que retorna a operação do módulo. Ele retorna o restante de seu primeiro argumento dividido por seu segundo argumento.

Sintaxe


A sintaxe fica assim:
MOD(N,M)

A função retorna o restante de N dividido por M .

A operação também pode ser feita usando o operador módulo, então você também pode usar as seguintes sintaxes para obter o mesmo resultado:
N % M
N MOD M

Exemplo


Segue um exemplo para demonstrar:
SELECT MOD(9, 2);

Resultado:
+-----------+
| MOD(9, 2) |
+-----------+
|         1 |
+-----------+

Aqui estão mais alguns:
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 com o Operador de Módulo


Aqui está um exemplo que compara as sintaxes entre a função e os operadores:
SELECT 
    MOD(9, 2),
    9 % 2,
    9 MOD 2;

Resultado:
+-----------+-------+---------+
| MOD(9, 2) | 9 % 2 | 9 MOD 2 |
+-----------+-------+---------+
|         1 |     1 |       1 |
+-----------+-------+---------+

Argumentos não numéricos


Aqui está um exemplo do que acontece quando fornecemos argumentos não numéricos:
SELECT MOD('Homer', 'Symptom');

Resultado:
+-------------------------+
| MOD('Homer', 'Symptom') |
+-------------------------+
|                    NULL |
+-------------------------+
1 row in set, 3 warnings (0.005 sec)

Vejamos o aviso:
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() retorna null se um dos argumentos for 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 ausentes


Chamando MOD() com o número errado de argumentos ou sem argumentos resulta em um erro:
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

E:
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