如何进行数值计算_mysql基础运算

来源:这里教程网 时间:2026-02-28 20:41:17 作者:

MySQL 支持常见的数值计算,可直接在

SELECT
WHERE
ORDER BY
等子句中对字段或常量进行加减乘除、取模、幂运算等操作,无需额外编程。

基础四则运算(+ - * /)

使用

+
-
*
/
对数字字段或字面量进行计算。注意除法结果默认为浮点数;若需整除,用
DIV
关键字(如
10 DIV 3
返回
3
)。

SELECT price * 1.1 AS price_with_tax FROM products;
—— 计算含税价
SELECT quantity - sold AS remaining FROM inventory;
—— 计算剩余库存
SELECT id, (x + y) / 2 AS avg_coord FROM points;
—— 计算平均坐标

取模与整除(% 和 DIV)

%
返回两数相除的余数(支持负数,符号同被除数);
DIV
是整数除法,向零截断,不返回小数。

SELECT id FROM users WHERE id % 2 = 0;
—— 查询 ID 为偶数的用户
SELECT 7 % 3, -7 % 3, 7 DIV 3;
→ 返回
1
-1
2
避免用
/
做整除判断(如
id / 2 = 3
),因浮点精度可能导致误判

常用数学函数辅助计算

MySQL 内置函数可处理四舍五入、绝对值、幂、平方根等需求:

ROUND(x, d)
:四舍五入到小数点后 d 位(
d
可为负,如
ROUND(1234, -2)
1200
ABS(x)
:返回绝对值;
POW(x, y)
POWER(x, y)
:x 的 y 次方
SQRT(x)
:开平方(x ≥ 0);
MOD(x, y)
等价于
x % y
,语义更清晰

注意事项与常见陷阱

数值计算中容易忽略类型隐式转换和 NULL 行为:

任何含
NULL
的算术表达式结果均为
NULL
(如
5 + NULL
NULL
),必要时用
IFNULL()
COALESCE()
处理
整数列参与除法(如
INT / INT
)仍返回浮点结果;若要强制整数结果,显式用
DIV
CAST(... AS SIGNED)
避免在
WHERE
中对字段做函数运算(如
WHERE price * 1.1 > 100
),可能使索引失效;建议将计算移到右侧常量侧(如
price > 100 / 1.1

相关推荐