[MYSQL] RAND()
RAND() 亂數 RAND() RAND(N) N傳入的數值 回傳一個隨機浮點數v,範圍在 0 到1 之間 ( 0 ≤ v ≤ 1.0)。若已指定一個整數參數 N ,則它被用作種子值,用來產生相同的亂數。 mysql> SELECT RAND(); -> 0.9233482386203 mysql> SELECT RAND(20); -> 0.15888261251047 mysql> SELECT RAND(20); -> 0.15888261251047 mysql> SELECT RAND(); -> 0.63553050033332 mysql> SELECT RAND(); -> 0.70100469486881 mysql> SELECT RAND(20); -> 0.15888261251047 若要在i ≤ R ≤ j 這個範圍得到一個隨機整數 R,需要用到運算式 FLOOR(i + RAND() * (j – i + 1))。例如,若要在7 到 12 的範圍(包括7和12)內得到一個隨機整數, 可使用以下語句: SELECT FLOOR(7 + (RAND() * 6)); 在ORDER BY語句中,不能使用一個帶有RAND()值的列,原因是 ORDER BY 會計算列的多重時間。然而,可按照如下方式取得檢索結果的隨機順序: SELECT * FROM tbl_name ORDER BY RAND(); 可以使用ORDER BY RAND()結合 LIMIT 達到從資料行中隨機取樣: SELECT * FROM table1, table2 WHERE a=b AND c 注意,在WHERE語句中,WHERE每執行一次,RAND()就會被再計算一次。 RAND()不能當作一個完美的亂數產生器(永遠不會重覆),而是在不同MySQL版本平台之間可相容,可以快速產生ad hoc亂數的產生器。