首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL RAND() 函數詳解:隨機數生成、種子固定、隨機排序實戰

     編輯:MySQL 綜合教學

基本用法

mysql> SELECT RAND(1), RAND(), RAND();
+------------------+------------------+------------------+
| RAND(1)          | RAND()           | RAND()           |
+------------------+------------------+------------------+
| 0.18109050223705 | 0.75023211143001 | 0.20788908117254 |
+------------------+------------------+------------------+

第一次調用傳入種子 RAND(1),後續 RAND() 產生確定序列。同一會話中同種子序列固定,適用於測試、抽樣復現。

隨機排序:ORDER BY RAND()

SELECT * FROM tbl 
WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM tbl))) 
ORDER BY id LIMIT 10;
  • 兩次查詢法:
    -- 1. 獲取總數
    SELECT COUNT(*) INTO @total FROM tbl;
    -- 2. 應用層生成隨機 offset,再 LIMIT offset, 10
  • 系統表抽樣(MySQL 8.0.3+):
    -- 1~100
    SELECT FLOOR(1 + RAND() * 100);
    
    -- 10~20
    SELECT FLOOR(10 + RAND() * 11);
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved