隨機數(蘭德)
生成一個隨機數
要在 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 的堅定對手將能夠比你想象的更容易猜出你的祕密。