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