MySQL 常见数值函数速查与使用示例

小石头
小石头
发布时间:2026-10-16| 4人浏览过
原创

本文将系统梳理 MySQL 数据库中最常用的数值处理函数,包括绝对值计算、取余操作、数值舍入(四舍五入与截断)、随机数生成以及幂运算等。通过对比不同函数的语法差异并提供可直接运行的 SQL 示例,帮助用户在实际开发中高效解决数据计算与清洗问题。

获取绝对值

ABS(X) 函数用于返回数字 X 的绝对值。无论是负数转为正数,还是保持正数和零不变,该函数都能准确处理。

mysql> SELECT ABS(2), ABS(-32), ABS(-0.5);
+--------+----------+-----------+
| ABS(2) | ABS(-32) | ABS(-0.5) |
+--------+----------+-----------+
|      2 |       32 |       0.5 |
+--------+----------+-----------+
1 row in set (0.01 sec)

执行求余运算

MySQL 提供了三种等效方式来进行取余操作:MOD(N,M) 函数、N % M 运算符以及 N MOD M 关键字。它们的结果完全一致。

mysql> SELECT MOD(10,3), 20%3, 15 MOD 4;
+-----------+------+----------+
| MOD(10,3) | 20%3 | 15 MOD 4 |
+-----------+------+----------+
|         1 |    2 |        3 |
+-----------+------+----------+
1 row in set (0.00 sec)

整数舍入与取整

在处理浮点数时,通常需要根据业务需求向上或向下取整:

  • CEIL(X) 或 CEILING(X):返回大于或等于 X 的最小整数。
  • FLOOR(X):返回小于或等于 X 的最大整数。
mysql> SELECT CEIL(2.1234), CEILING(3.1234), FLOOR(4.1234);
+--------------+-----------------+---------------+
| CEIL(2.1234) | CEILING(3.1234) | FLOOR(4.1234) |
+--------------+-----------------+---------------+
|            3 |               4 |             4 |
+--------------+-----------------+---------------+
1 row in set (0.00 sec)

生成随机数

RAND() 函数返回一个介于 0 到 1 之间的伪随机浮点数。值得注意的是,传入相同的种子参数 RAND(X),可以产生重复的随机序列,这在需要复现特定数据集时非常有用。

mysql> SELECT RAND(), RAND();
+--------------------+---------------------+
| RAND()             | RAND()              |
+--------------------+---------------------+
| 0.8802711524816893 | 0.21204793100436026 |
+--------------------+---------------------+
1 row in set (0.00 sec)

-- 使用种子值生成可预测的随机序列
mysql> SELECT RAND(2), RAND(2), RAND(1000000);
+--------------------+--------------------+--------------------+
| RAND(2)            | RAND(2)            | RAND(1000000)      |
+--------------------+--------------------+--------------------+
| 0.6555866465490187 | 0.6555866465490187 | 0.2644144708890603 |
+--------------------+--------------------+--------------------+
1 row in set (0.00 sec)

四舍五入处理

ROUND(X) 用于将数值四舍五入为最接近的整数;ROUND(X, Y) 则保留小数点后 Y 位。注意 Y 可以是负数,表示对整数部分进行舍入。

mysql> SELECT ROUND(3.512), ROUND(4.235, 2);
+--------------+----------------+
| ROUND(3.512) | ROUND(4.235, 2) |
+--------------+----------------+
|            4 |           4.24 |
+--------------+----------------+
1 row in set (0.00 sec)

数值截断

TRUNCATE(X, Y) 函数直接截取数值,不进行四舍五入。当 Y 为正数时保留相应小数位;当 Y 为负数时,将小数点左侧对应位置的数字变为 0。

-- 正常截断小数
mysql> SELECT TRUNCATE(2.567, 2), TRUNCATE(1.99, 1);
+-------------------+------------------+
| TRUNCATE(2.567, 2)| TRUNCATE(1.99, 1)|
+-------------------+------------------+
|              2.56 |              1.9 |
+-------------------+------------------+

-- 负数参数截断整数右侧
mysql> SELECT TRUNCATE(1234, -3), TRUNCATE(1234, -2);
+-------------------+-------------------+
| TRUNCATE(1234,-3) | TRUNCATE(1234,-2) |
+-------------------+-------------------+
|              1000 |              1200 |
+-------------------+-------------------+
1 row in set (0.00 sec)

判断符号

SIGN(X) 函数用于判断数字的正负性:负数返回 -1,零返回 0,正数返回 1。

mysql> SELECT SIGN(-123), SIGN(0), SIGN(223);
+------------+---------+-----------+
| SIGN(-123) | SIGN(0) | SIGN(223) |
+------------+---------+-----------+
|         -1 |       0 |         1 |
+------------+---------+-----------+
1 row in set (0.00 sec)

幂运算

POW(X, Y) 与 POWER(X, Y) 功能相同,均返回 X 的 Y 次方结果。

mysql> SELECT POW(2, 3), POWER(3, 4);
+----------+------------+
| POW(2, 3)| POWER(3, 4) |
+----------+------------+
|        8 |         81 |
+----------+------------+
1 row in set (0.00 sec)

以上就是 MySQL 常见数值函数的详细内容,更多关于 MySQL 数据处理技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。