mysql> SELECT RAND(1), RAND(), RAND(); +------------------+------------------+------------------+ | RAND(1) | RAND() | RAND() | +------------------+------------------+------------------+ | 0.18109050223705 | 0.75023211143001 | 0.20788908117254 | +------------------+------------------+------------------+
第一次調用傳入種子 RAND(1),後續 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
-- 1~100 SELECT FLOOR(1 + RAND() * 100); -- 10~20 SELECT FLOOR(10 + RAND() * 11);