MySQL - MOD() 函数



MySQL 的MOD()函数用于对两个数值执行模运算。

模运算与对两个数进行普通除法运算相同,但返回余数而不是商。它用符号“%”表示。

此 MySQL 函数接受两个整数值,例如XY(按此顺序),并返回X除以Y的余数。

语法

以下是此函数的语法:

MOD(X,Y);

参数

此函数以两个整数值作为参数。

返回值

此函数返回除法运算的余数。

另一种语法

以下是 MySQL 中 mod() 函数的另一种语法:

X % Y;
Or,
X MOD Y;

示例

以下查询使用 MySQL MOD() 函数计算 229 除以 5 的余数:

SELECT MOD(229, 5) As Result;

输出

以上查询的输出如下所示:

结果
4

示例

我们也可以将参数作为字符串值传递给此函数:

SELECT MOD('555229', '25') As Result;

输出

这将产生以下结果:

结果
4

示例

我们也可以使用符号 % 代替此 MOD() 函数:

SELECT 25643 % 50 As Result;

输出

以下是输出:

结果
43

示例

表达式 N MOD M 也执行相同的函数:

SELECT 37 MOD 7 As Result;

输出

以上查询的输出如下所示:

结果
2

示例

此函数也接受带有小数的参数值:

SELECT MOD(57785.658778, 557.36) As Result;

输出

输出显示如下:

结果
377.578778

示例

如果将 0 作为参数Y的值传递,则此函数返回NULL

SELECT MOD(45673, 0) As Result;

输出

输出显示如下:

结果
NULL

示例

如果将 0 作为参数X的值传递,则此函数始终返回 0:

SELECT MOD(0, 5) As Result;

输出

以上查询的输出如下所示:

结果
0

示例

在下面的示例中,我们使用 CREATE 语句创建一个名为CUSTOMERS的 MySQL 表,如下所示:

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

以下查询将 7 条记录添加到上面创建的表中:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

执行以下查询以显示 CUSTOMERS 表中存在的所有记录:

Select * From CUSTOMERS;

以下是 CUSTOMERS 表:

ID 姓名 年龄 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

现在,我们使用 MOD() 函数计算薪水除以 2 的余数。如果余数为 0,则表示“薪水”为偶数;否则,为奇数。

SELECT ID, NAME, ADDRESS, SALARY,
IF(MOD(SALARY, 2), 'Odd', 'Even') as OddOrEven FROM CUSTOMERS;

输出

以上查询的输出如下所示:

ID 姓名 地址 薪水 奇偶
1 Ramesh Ahmedabad 2000.00 偶数
2 Khilan Delhi 1500.00 偶数
3 Kaushik Kota 2000.00 偶数
4 Chaitali Mumbai 6500.00 偶数
5 Hardik Bhopal 8500.00 偶数
6 Komal Hyderabad 4500.00 偶数
7 Muffy Indore 10000.00 偶数
广告