MySQL 中的 MOD()函数
MySQL 中的 MOD()函数用于计算一个数除以另一个数的余数。 MOD()函数返回被除数除以除数的余数。如果除数为零,则返回 NULL。
句法 :
MOD(N, M)
or
N % M
or
N MOD M
范围 :
MOD()函数接受上面提到和下面描述的两个参数。
- N –被除数,即要除以 M 的数字或数值表达式。
- M –除数,即除以被除数的数字或数值表达式。
回报:
它返回被除数除以除数的余数。
示例-1:
使用 MOD 函数找出 36 除以 6 的余数。
SELECT MOD( 36, 6) AS Remainder;
输出 :
Remainder |
---|
0 |
示例 2 :
使用模运算符(%) 计算 27 除以 4 的余数。
SELECT 27 % 4 AS Remainder;
输出 :
Remainder |
---|
3 |
示例 3 :
使用 MOD 函数查找浮点数的余数。
SELECT 10.15 MOD 3 AS Remainder;
输出 :
Remainder |
---|
1.15 |
示例 4:
当除数为 0 时,使用 MOD函数查找数字的余数。
SELECT MOD( 6, 0) AS Remainder;
输出 :
Remainder |
---|
NULL |
示例 5:
MOD函数还可用于查找列数据的剩余值。在这个例子中,我们将在 MOD函数的帮助下查找学生是否参加了奇数次考试或偶数次考试。为了演示创建一个名为Student 的表。
CREATE TABLE Student
(
Student_id INT AUTO_INCREMENT,
Student_name VARCHAR(100) NOT NULL,
Student_Class VARCHAR(20) NOT NULL,
TotalExamGiven INT NOT NULL,
PRIMARY KEY(Student_id )
);
现在向 Student 表插入一些数据:
INSERT INTO Student
(Student_name, Student_Class, TotalExamGiven )
VALUES
('Sayan', 'IX', 8 ),
('Nitin', 'X', 5 ),
('Aniket', 'XI', 6 ),
('Abdur', 'X', 7 ),
('Riya', 'IX', 4 ),
('Jony', 'X', 10 ),
('Deepak', 'X', 7 ),
('Ankana', 'XII', 5 ),
('Shreya', 'X', 8 ) ;
因此,学生表如下。
mysql> SELECT * FROM Student;
+------------+--------------+---------------+----------------+
| Student_id | Student_name | Student_Class | TotalExamGiven |
+------------+--------------+---------------+----------------+
| 1 | Sayan | IX | 8 |
| 2 | Nitin | X | 5 |
| 3 | Aniket | XI | 6 |
| 4 | Abdur | X | 7 |
| 5 | Riya | IX | 4 |
| 6 | Jony | X | 10 |
| 7 | Deepak | X | 7 |
| 8 | Ankana | XII | 5 |
| 9 | Shreya | X | 8 |
+------------+--------------+---------------+----------------+
9 rows in set (0.00 sec)
现在,我们要找出一个学生是否出现了考试总数的奇数或偶数。
SELECT
Student_name,
Student_Class,
TotalExamGiven,
IF(MOD(TotalExamGiven, 2),
'Odd','Even')
OddOrEven FROM Student ;
输出 :
+--------------+---------------+----------------+-----------+
| Student_name | Student_Class | TotalExamGiven | OddOrEven |
+--------------+---------------+----------------+-----------+
| Sayan | IX | 8 | Even |
| Nitin | X | 5 | Odd |
| Aniket | XI | 6 | Even |
| Abdur | X | 7 | Odd |
| Riya | IX | 4 | Even |
| Jony | X | 10 | Even |
| Deepak | X | 7 | Odd |
| Ankana | XII | 5 | Odd |
| Shreya | X | 8 | Even |
+--------------+---------------+----------------+-----------+