📜  MySQL 中的 MOD()函数

📅  最后修改于: 2022-05-13 01:55:20.362000             🧑  作者: Mango

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      |
+--------------+---------------+----------------+-----------+