隨機數(蘭德)

生成一個隨機數

要在 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 的堅定對手將能夠比你想象的更容易猜出你的祕密。