mysql 取隨機編號 mysql取隨機資料的方法

2021-10-17 22:28:50 字數 1030 閱讀 7683

先看手冊中的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...