随机数(兰德)
生成一个随机数
要在 0
和 1
之间生成伪随机浮点数,请使用 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 的坚定对手将能够比你想象的更容易猜出你的秘密。