我想使用PHP從我的SQL表請求5個隨機行。 舉例來說,我需要:從SQL選擇隨機行使用PHP
mysql_query("SELECT * FROM catalogue >> not sure what goes here << LIMIT 5");
我想使用PHP從我的SQL表請求5個隨機行。 舉例來說,我需要:從SQL選擇隨機行使用PHP
mysql_query("SELECT * FROM catalogue >> not sure what goes here << LIMIT 5");
SELECT * FROM catalogue order by RAND() LIMIT 5
編輯:
爲了什麼它的價值,請注意,在具有大量行的表中使用RAND()將是緩慢的。這可能會導致服務器崩潰。
一些解決方案:
鏈接到MediaWiki使用有趣的把戲(維基百科的特殊:隨機功能):與物品表中有一個隨機數(在創建文章時產生),一個額外的列。要獲得一篇隨機文章,請生成一個隨機數,並獲取隨機數字列中的下一個較大或較小(不記得哪個)值的文章。有了索引,這可以非常快。 (和MediaWiki是用PHP和MySQL的開發。)
但是,這是隻有一個隨機行。
如果你從一個非常大的表中選擇隨機行中,您可能希望在以下鏈接的方法進行試驗:
http://akinas.com/pages/en/blog/mysql_random_row/
注:只是爲了和大家一起
分享其他選項假設表有自動遞增你可以得到與
SELECT id FROM catalogue ORDER BY id DESC LIMIT 1
最大的ID和最小的ID機智^ h
SELECT id FROM catalogue ORDER BY id ASC LIMIT 1
使其能夠做到這一點
$randomId = mt_rand($smallestId, $biggestId);
$randomSql = mysql_query("SELECT * FROM catalogue WHERE id='$randomId'");
對於五行您可以創建隨機ID五倍。
如果該隨機ID缺失,但查詢將失敗 – warren
不通知恰好與相關主題的同樣的問題問? –