RAND()
函数说明
RAND() 函数用于生成一个介于 0 和 1 之间的 Float64 类型的随机数。它不接受任何参数,每次调用都会产生一个不可预测且不重复的随机数。
如果需要从表中随机选择数据,可以使用 RAND() 函数生成一个随机数,你可以根据这个随机数对表中的数据使用 ORDER BY 进行排序。例如:
1. -- 从表中随机获取所有数据,并按照随机顺序进行排序,每次查询结果的顺序可能都不同
2. SELECT * FROM table ORDER BY RAND();
函数语法
1. > RAND([seed])
参数释义
| 参数 | 说明 |
|---|---|
| seed | 可选参数。是一个整数值,用于指定生成随机数时的种子值。如果不指定 seed 参数,则默认以当前时间为种子值。返回值类型与输入类型保持一致。 MatrixOne 暂不支持指定种子值。 |
示例
- 示例 1
1. mysql> SELECT RAND();
2. +---------------------+
3. | rand() |
4. +---------------------+
5. | 0.25193285156620004 |
6. +---------------------+
7. 1 row in set (0.00 sec)
- 示例 2
1. CREATE TABLE Users (
2. ID INT PRIMARY KEY AUTO_INCREMENT,
3. UserName VARCHAR(255) NOT NULL,
4. Email VARCHAR(255));
6. INSERT INTO Users (UserName, Email) VALUES
7. ('John', 'john@example.com'),
8. ('Jane', 'jane@example.com'),
9. ('Alice', 'alice@example.com'),
10. ('Bob', 'bob@example.com');
12. -- 从 Users 表中随机选择一个用户的信息
13. mysql> SELECT * FROM Users ORDER BY RAND() LIMIT 1;
14. +------+----------+-----------------+
15. | id | username | email |
16. +------+----------+-----------------+
17. | 4 | Bob | bob@example.com | -- Bob 的信息被随机选中
18. +------+----------+-----------------+
19. 1 row in set (0.01 sec)
21. -- 再次执行上述查询,选中的可能会是另一个用户
22. mysql> SELECT * FROM Users ORDER BY RAND() LIMIT 1;
23. +------+----------+-------------------+
24. | id | username | email |
25. +------+----------+-------------------+
26. | 3 | Alice | alice@example.com | -- Alice 的信息被随机选中
27. +------+----------+-------------------+
28. 1 row in set (0.01 sec)
限制
MatrixOne 暂不支持指定 RAND(seed) 函数的种子值(即 seed 参数)。
