先看手冊中的sql:
select * from table_name order by rand() limit 5;
描述:rand()
rand(n)
返回在範圍0到1.0內的隨機浮點值。如果乙個整數引數n被指定,它被用作種子值。
mysql> select rand();
-> 0.5925
mysql> select rand(20);
-> 0.1811
mysql> select rand(20);
-> 0.1811
mysql> select rand();
-> 0.2079
mysql> select rand();
-> 0.7888
注意:不能在乙個order by子句用rand()值使用列,因為order by將重複計算列多次。
然而在mysql3.23中,你可以做: select * from table_name order by rand(),這是有利於得到乙個來自select * from table1,table2 where a=b and c
下面這個是優化後的**:
select *
from table_name as r1 join
(select round(rand() *
(select max(id)
from table_name)) as id)
as r2
where r1.id >= r2.id
order by r1.id asc
limit 5;
您可能感興趣的文章:
mysql隨機查詢的經驗分享
分享:mysql隨機查詢若干條資料的方法
解析mysql實現隨機查詢的幾種方法
mysql隨機查詢大量資料的sql語句效能分析
mysql 隨機生成某個範圍內的整數
mysql全文查詢與隨機查詢的例子
mysql隨機取資料的幾種方法
mysql隨機查詢記錄的效率測試筆記
mysql取10條 mysql 獲取隨機10條資料
explain命令在解決資料庫效能上是第一推薦使用命令,大部分的效能問題可以通過此命令來簡單的解決,explain可以用來檢視 sql 語句的執行效 果,可以幫助選擇更好的索引和優化查詢語句,寫出更好的優化語句。explain語法 explain select from where 例如 expla...
mysql中取隨機資料
rand在手冊裡是這麼說的 rand rand n 例 如下 複製 select from table name order by rand limit 5 返回在範圍0到1.0內的隨機浮點值。如果乙個整數引數n被指定,它被用作種子值。如下 複製 mysql select rand 0.5925 m...
MySQL 隨機取資料效率問題
本文詳細解說了mysql order by rand 效率優化的方案,並給出了優化的思路過程,是篇不可多得的mysql order by rand 效率美文。最近由於需要大概研究了一下mysql的隨機抽取實現方法。舉個例子,要從tablename表中隨機提取一條記錄,大家一般的寫法就是 select...