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 参数)。