select * from table_name order by rand() limit 5;
rand在手冊裡是這麼說的:
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= r2.id
order by r1.id asc
limit 5;
執行效率需要0.02 sec.可惜的是,只有mysql 4.1.*以上才支援這樣的子查詢.
**於:http://www.phpfans.net/article/mysql/i1171770261_14391.html
MySQL 如何從表中取出隨機資料
以前在群裡討論過這個問題,比較的有意思.mysql的語法真好玩.他們原來都想用php的實現隨機,但取出多條好像要進行兩次以上查詢.翻了手冊,找到了下面這個語句,可以完成任務了 select from table name order by rand limit 5 rand在手冊裡是這麼說的 ran...
MySQL如何從表中取出隨機資料
原來都想用php的實現隨機,但取出多條好像要進行兩次以上查詢.最近我從mysql手冊中,找到了下面這個語句,可以完成任務 select from table name order by rand limit 5 rand在手冊裡是這麼說的 rand rand n 返回在範圍0到1.0內的隨機浮點值。...
MySQL實現表中取出隨機資料
一直以為mysql隨機查詢幾條資料,就用 select from table order by rand limit 5 就可以了。但是真正測試一下才發現這樣效率非常低。乙個15萬餘條的庫,查詢5條資料,居然要8秒以上 檢視官方手冊,也說rand 放在order by 子句中會被執行多次,自然效率及...