Função MOD() do MySQL
A função `MOD()` do MySQL calcula o restante da divisão de dois números. É comumente usado para operações que exigem aritmética de módulo, como determinar se um número é par ou ímpar.
Uso
A função `MOD()` é usada para encontrar o resto quando uma expressão numérica é dividida por outra. É particularmente útil em cenários que envolvem operações cíclicas ou determinação de divisibilidade.
MOD(N, M);
Nessa sintaxe, `N` é o dividendo e `M` é o divisor; a função retorna o restante de `N` dividido por `M`.
Exemplos
1. Operação básica de módulo
SELECT MOD(10, 3);
Essa consulta retorna `1`, que é o restante de `10` dividido por `3`.
2. Usando MOD() com dados de tabela
SELECT order_id, MOD(order_id, 2) AS remainder FROM orders;
Esse exemplo calcula o restante de cada `order_id` dividido por `2`, o que é útil para identificar IDs de ordem pares ou ímpares.
3. Lógica condicional com MOD()
SELECT employee_id FROM employees WHERE MOD(employee_id, 5) = 0;
Este exemplo seleciona os `id_empregado` que são múltiplos de 5, usando a função `MOD()` para filtrar os resultados.
4. Manuseio de números negativos
SELECT MOD(-10, 3);
Essa consulta retorna `-1`, ilustrando como `MOD()` lida com dividendos negativos, retornando um resto com o mesmo sinal do dividendo. Da mesma forma, `SELECT MOD(10, -3);` retorna `1`, refletindo o sinal do divisor.
Dicas e práticas recomendadas
- Use para operações cíclicas. Utilize `MOD()` para tarefas como distribuir itens uniformemente entre grupos.
- Verifique se o divisor é zero. Certifique-se de que o divisor não seja zero para evitar erros na execução. A tentativa de `MOD(N, 0)` resulta em um valor `NULL`, pois a divisão por zero é indefinida.
- Combine com outras funções. Combine `MOD()` com funções como `FLOOR()` ou `CEIL()` para operações aritméticas complexas.
- Otimize o desempenho. Use `MOD()` nas cláusulas `WHERE` com cautela, pois isso pode afetar o desempenho da consulta se não for indexado corretamente. Considere a possibilidade de criar índices nas colunas envolvidas nas operações `MOD()` ou usar otimizações específicas do banco de dados para melhorar o desempenho.