SELECT * FROM table_name ORDER BY RAND() LIMIT 5;
RAND() 回傳 0~1 隨機浮點數,可指定種子 RAND(N) 產生可重複序列。
效能提醒:ORDER BY RAND() 在大資料量下效能極差,參考《MySQL Order By Rand() 效率》優化。
-- 將所有資料的 views 欄位設為隨機值
UPDATE cdb_posts SET views = RAND();
INSERT INTO `table` (col) VALUES (RAND()), (RAND()), ...;
-- 注意欄位寬度是否足夠存放浮點數
以上為 MySQL 內建隨機函數的基本應用,大量資料隨機抽樣建議改用應用層產生 offset 方式。