В MariaDB модулният оператор (%
) връща модулната операция. Връща остатъка от първия си аргумент, разделен на втория си аргумент.
Синтаксис
Синтаксисът е така:
N % M
Това връща остатъка от N
разделено на M
.
Операцията може да се извърши и с помощта на MOD
ключова дума и MOD()
функция. Така че можете да използвате следните синтаксиси, за да постигнете същия резултат:
MOD(N,M)
N MOD M
Пример
Ето пример за демонстриране на модулния оператор:
SELECT 9 % 2;
Резултат:
+-------+| 9 % 2 |+-------+| 1 |+-------+
Ето още няколко:
SELECT
8 % 2,
134 % 27,
9 % 5,
9 % 10;
Резултат:
<пред>+-------+---------+-------+-------+| 8 % 2 | 134 % 27 | 9 % 5 | 9 % 10 |+-------+----------+-------+-------+| 0 | 26 | 4 | 9 |+-------+----------+-------+-------+В сравнение с MOD
&MOD()
Ето пример, който сравнява синтаксиса във функцията и операторите:
SELECT
9 % 2,
9 MOD 2,
MOD(9, 2);
Резултат:
<пред>+-------+--------+-----------+| 9 % 2 | 9 MOD 2 | MOD(9, 2) |+-------+--------+----------+| 1 | 1 | 1 |+-------+---------+-----------+Нечислови аргументи
Ето пример за това какво се случва, когато предоставим нечислови аргументи:
SELECT 'Bird' % 'Dog';
Резултат:
+----------------+| 'Птица' % 'Куче' |+----------------+| NULL |+----------------+1 ред в комплект, 3 предупреждения (0,000 сек.)
Нека видим предупреждението:
SHOW WARNINGS;
Резултат:
+--------+------+---------------------------- ------------+| Ниво | Код | Съобщение |+---------+------+------------------------------ ------------+| Предупреждение | 1292 | Съкратена неправилна DOUBLE стойност:„Птица“ || Предупреждение | 1292 | Съкратена неправилна DOUBLE стойност:„Куче“ || Предупреждение | 1365 | Деление на 0 |+---------+------+---------------------------- --------------+
Нулеви операнди
Резултатът е null
ако някой от операндите е null
:
SELECT
null % 2,
134 % null,
null % null;
Резултат:
+----------+------------+------------+| нула % 2 | 134 % нула | нула % нула |+----------+-----------+------------+| NULL | NULL | NULL |+----------+------------+------------+