Trong MariaDB, MOD()
là một hàm tích hợp trả về hoạt động modulo. Nó trả về phần còn lại của đối số đầu tiên chia cho đối số thứ hai.
Cú pháp
Cú pháp như sau:
MOD(N,M)
Hàm trả về phần còn lại của N
chia cho M
.
Thao tác này cũng có thể được thực hiện bằng toán tử modulo, vì vậy bạn cũng có thể sử dụng các cú pháp sau để đạt được kết quả tương tự:
N % M
N MOD M
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT MOD(9, 2);
Kết quả:
+-----------+ | MOD(9, 2) | +-----------+ | 1 | +-----------+
Đây là một số khác:
SELECT
MOD(8, 2),
MOD(134, 6),
MOD(9, 5),
MOD(9, 10);
Kết quả:
+-----------+-------------+-----------+------------+ | MOD(8, 2) | MOD(134, 6) | MOD(9, 5) | MOD(9, 10) | +-----------+-------------+-----------+------------+ | 0 | 2 | 4 | 9 | +-----------+-------------+-----------+------------+
So với Modulo Operator
Dưới đây là một ví dụ so sánh các cú pháp giữa hàm và toán tử:
SELECT
MOD(9, 2),
9 % 2,
9 MOD 2;
Kết quả:
+-----------+-------+---------+ | MOD(9, 2) | 9 % 2 | 9 MOD 2 | +-----------+-------+---------+ | 1 | 1 | 1 | +-----------+-------+---------+
Đối số không phải dạng số
Dưới đây là một ví dụ về những gì sẽ xảy ra khi chúng tôi cung cấp các đối số không phải là số:
SELECT MOD('Homer', 'Symptom');
Kết quả:
+-------------------------+ | MOD('Homer', 'Symptom') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 3 warnings (0.005 sec)
Hãy xem cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1292 | Truncated incorrect DOUBLE value: 'Symptom' | | Warning | 1365 | Division by 0 | +---------+------+---------------------------------------------+
Đối số rỗng
MOD()
trả về null
nếu một trong hai đối số là null
:
SELECT
MOD(null, 2),
MOD(9, null),
MOD(null, null);
Kết quả:
+--------------+--------------+-----------------+ | MOD(null, 2) | MOD(9, null) | MOD(null, null) | +--------------+--------------+-----------------+ | NULL | NULL | NULL | +--------------+--------------+-----------------+
Thiếu đối số
Đang gọi MOD()
với số lượng đối số sai hoặc không có bất kỳ đối số nào dẫn đến lỗi:
SELECT MOD();
Kết quả:
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
Và:
SELECT MOD(10, 2, 3);
Kết quả:
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