随机数(兰德)

生成一个随机数

要在 01 之间生成伪随机浮点数,请使用 RAND() 函数

假设你有以下查询

SELECT i, RAND() FROM t;

这将返回这样的东西

I RAND()
1 0.6191438870682
2 0.93845168309142
3 0.83482678498591

一个范围内的随机数

要生成 a <= n <= b 范围内的随机数,可以使用以下公式

FLOOR(a + RAND() * (b - a + 1))

例如,这将生成 7 到 12 之间的随机数

SELECT FLOOR(7 + (RAND() * 6));

一种随机返回表中行的简单方法:

SELECT * FROM tbl ORDER BY RAND();

这些是伪随机数。

MySQL 中的伪随机数生成器不具有加密安全性。也就是说,如果你使用 MySQL 生成随机数作为秘密,那么知道你使用 MySQL 的坚定对手将能够比你想象的更容易猜出你的秘密。