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));
  5. INSERT INTO Users (UserName, Email) VALUES
  6. ('John', 'john@example.com'),
  7. ('Jane', 'jane@example.com'),
  8. ('Alice', 'alice@example.com'),
  9. ('Bob', 'bob@example.com');
  10. -- Users表中随机选择一个用户的信息
  11. mysql> SELECT * FROM Users ORDER BY RAND() LIMIT 1;
  12. +------+----------+-----------------+
  13. | id | username | email |
  14. +------+----------+-----------------+
  15. | 4 | Bob | bob@example.com | -- Bob的信息被随机选中
  16. +------+----------+-----------------+
  17. 1 row in set (0.01 sec)
  18. -- 再次执行上述查询,选中的可能会是另一个用户
  19. mysql> SELECT * FROM Users ORDER BY RAND() LIMIT 1;
  20. +------+----------+-------------------+
  21. | id | username | email |
  22. +------+----------+-------------------+
  23. | 3 | Alice | alice@example.com | -- Alice的信息被随机选中
  24. +------+----------+-------------------+
  25. 1 row in set (0.01 sec)

限制

MatrixOne 暂不支持指定 RAND(seed) 函数的种子值(即 seed 参数)。