Функция MOD
находит остаток от деления
одного числа на другое. Вместо MOD можно
использовать операцию %, которая делает то
же самое.
Синтаксис
Функция MOD
:
SELECT MOD(что_делить, на_что_делить) FROM имя_таблицы WHERE условие
Альтернативный синтаксис с %:
SELECT что_делить % на_что_делить FROM имя_таблицы WHERE условие
Таблицы для примеров
id айди |
number число |
---|---|
1 | 10 |
2 | 8 |
3 | 11 |
Пример
В данном примере находится остаток от деления
столбца number на 3
:
SELECT *, MOD(number, 3) as mod FROM numbers
Результат выполнения кода:
id айди |
number число |
mod остаток от деления |
---|---|---|
1 | 10 | 1 |
2 | 8 | 2 |
3 | 11 | 2 |
Запрос можно переписать следующим образом:
SELECT id, number % 3 as mod FROM numbers
Меняем таблицу для примеров
id айди |
number1 число1 |
number2 число2 |
---|---|---|
1 | 10 | 3 |
2 | 8 | 5 |
3 | 14 | 4 |
Пример
В данном примере находится остаток от деления столбца number1 на number2:
SELECT *, MOD(number1, number2) as mod FROM numbers
Результат выполнения кода:
id айди |
number1 число1 |
number2 число2 |
mod остаток от деления |
---|---|---|---|
1 | 10 | 3 | 1 |
2 | 8 | 5 | 3 |
3 | 14 | 4 | 2 |
Запрос можно переписать следующим образом:
SELECT *, number1 % number2 as mod FROM numbers
Пример
Давайте выберем только те записи, в которых
остаток от деления первого числа на второе
меньше или равен двум (это будут 1
-я
и 3
-я записи):
SELECT * FROM numbers WHERE MOD(number1, number2)<=2
Результат выполнения кода:
id айди |
number1 число1 |
number2 число2 |
---|---|---|
1 | 10 | 3 |
3 | 14 | 4 |
Запрос можно переписать следующим образом:
SELECT * FROM numbers WHERE number1 % number2 <= 2