📌 基础语法与核心功能
RAND() 是 MySQL 内置的数学函数,用于生成 **0 ≤**值 < 1 之间的随机双精度浮点数。
sql
RAND() --无种子,返回完全随机的浮点数
RAND(N) --使用整数N作为种子,同一会话中相同种子返回相同序列
| 语法形式 | 返回值范围 | 特点 |
|---|---|---|
| RAND() | 0 ≤ v < 1 | 无种子,完全随机 |
| RAND(N) | 0 ≤ v < 1 | 有种子,可重复的随机序列 |
sql
SELECT RAND(); --例如:0.7245639057127423\[reference:1\]
SELECT RAND(10); --使用种子10生成随机数\[reference:2\]
🎯 核心用法速查表
| 使用场景 | SQL 示例 | 返回值 |
|---|---|---|
| 生成随机浮点数 | SELECT RAND(); | 0 到 1 之间的浮点数 |
| 生成指定范围随机整数 | SELECT FLOOR(RAND() * (max - min + 1)) + min; | min 到 max 之间的整数 |
| 随机排序结果集 | SELECT * FROM table ORDER BY RAND(); | 结果集随机排序 |
| 随机抽取 N 条记录 | SELECT * FROM table ORDER BY RAND() LIMIT N; | 随机 N 条记录 |
| 约 10% 概率筛选数据 | SELECT * FROM table WHERE RAND() < 0.1; | 约 10% 的行 |
| 插入随机测试数据 | INSERT INTO table (score) VALUES (RAND() * 100); | 0-100 随机数插入 |