我想使用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
不通知恰好与相关主题的同样的问题问? –