MySQL - MOD() 函数
MySQL MOD() 函数用于对两个数值执行模运算。
模运算与对两个数字执行普通除法运算相同,但返回的是余数而不是商。它用符号"%"表示。
此 MySQL 函数接受两个整数值,例如 X 和 Y(顺序相同),并返回除法运算 X 除以 Y 的余数。
语法
以下是此函数的语法 -
MOD(X,Y);
参数
此函数接受两个整数值作为参数。
返回值
此函数返回除法运算的余数。
另一种语法
以下是 MySQL 中 mod() 函数的另一种语法 -
X % Y; 或者, X MOD Y;
示例
以下查询使用 MySQL MOD() 函数计算 229 除以 5 的余数 -
SELECT MOD(229, 5) As Result;
输出
上述查询的输出如下所示 -
Result |
---|
4 |
示例
我们也可以将参数作为字符串值传递给此函数 -
SELECT MOD('555229', '25') As Result;
输出
这将产生以下结果 -
Result |
---|
4 |
示例
我们也可以使用符号 % 代替此 MOD() 函数 -
SELECT 25643 % 50 As Result;
输出
以下是输出 -
Result |
---|
43 |
示例
表达式 N MOD M 也执行相同的功能 -
SELECT 37 MOD 7 As Result;
输出
上述查询的输出如下所示 -
Result |
---|
2 |
示例
此函数也接受带小数的值作为参数 -
SELECT MOD(57785.658778, 557.36) As Result;
输出
输出结果如下:-
Result |
---|
377.578778 |
示例
如果将 0 作为参数 Y 的值传递,则此函数返回 NULL:-
SELECT MOD(45673, 0) As Result;
输出
输出结果如下:-
Result |
---|
NULL |
示例
如果将 0 作为参数 X 的值传递,则此函数始终返回 0 -
SELECT MOD(0, 5) As Result;
输出
上述查询的输出如下所示 -
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 | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
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() 函数计算 SALARY 除以 2 后的余数。如果余数为 0,则表示"SALARY"为偶数;否则,表示"SALARY"为奇数。
SELECT ID, NAME, ADDRESS, SALARY, IF(MOD(SALARY, 2), 'Odd', 'Even') as OddOrEven FROM CUSTOMERS;
输出
上述查询的输出如下所示 -
ID | NAME | ADDRESS | SALARY | OddOrEven |
---|---|---|---|---|
1 | Ramesh | Ahmedabad | 2000.00 | Even |
2 | Khilan | Delhi | 1500.00 | Even |
3 | Kaushik | Kota | 2000.00 | Even |
4 | Chaitali | Mumbai | 6500.00 | Even |
5 | Hardik | Bhopal | 8500.00 | Even |
6 | Komal | Hyderabad | 4500.00 | Even |
7 | Muffy | Indore | 10000.00 | Even |