MySQL数值函数包括ABS、ROUND、FLOOR、CEIL、MOD、POWER等数学计算函数,RAND等随机函数,TRUNCATE、FORMAT、CONV等格式化函数,以及IF、CASE、NULLIF等条件函数。

MySQL 提供了丰富的数值函数,用于对数字进行计算、格式化、取整、生成随机数等操作。掌握这些函数能让你在查询中更灵活地处理数值数据,无需在应用层额外加工。
常用数学计算函数
这类函数主要用于基础算术和数学运算,返回计算结果。
- ABS(x):返回 x 的绝对值。例如 SELECT ABS(-15); 返回 15。
- ROUND(x, d):四舍五入到小数点后 d 位(d 可省略,默认为 0)。如 SELECT ROUND(3.14159, 2); 返回 3.14。
- FLOOR(x):向下取整;CEILING(x) 或 CEIL(x):向上取整。例如 FLOOR(4.9) 得 4,CEIL(4.1) 得 5。
- MOD(x, y) 或 x % y:返回 x 除以 y 的余数。注意 y 不能为 0。
- POWER(x, y) 或 POW(x, y):返回 x 的 y 次方。
随机与范围相关函数
适合生成测试数据、随机排序或模拟场景。
- RAND():返回 0 到 1 之间的浮点随机数(每次调用值可能不同)。可用于排序:ORDER BY RAND() 随机抽取记录。
- RAND(N):使用整数 N 作为种子,结果可复现(相同 N 总是返回相同序列)。
- 若需指定范围的随机整数(如 1–100),可用:FLOOR(1 + RAND() * 100)。
数值截取与格式化函数
用于展示优化或精度控制,不改变原始存储值。
- TRUNCATE(x, d):直接截断到小数点后 d 位,不四舍五入。例如 TRUNCATE(3.14159, 2) 返回 3.14。
- FORMAT(x, d):按千分位格式化数字并保留 d 位小数,返回字符串。如 FORMAT(1234567.891, 2) 返回 "1,234,567.89"。
- CONV(N, from_base, to_base):在不同进制间转换数字(如十进制转十六进制),常用于底层数据处理。
条件型数值函数
结合逻辑判断,让数值处理更具动态性。
- IF(condition, true_val, false_val):满足 condition 返回 true_val,否则返回 false_val。例如:SELECT IF(score >= 60, 'PASS', 'FAIL') FROM students;
- CASE WHEN ... THEN ... END:多分支判断,适合复杂分级(如成绩等级 A/B/C/D)。
- NULLIF(a, b):当 a = b 时返回 NULL,否则返回 a。常用于避免除零错误:a / NULLIF(b, 0)。










