SELECT tid,subject FROM threads ORDER BY rand() LIMIT 5; 这样的随机5个是没有问题,不过数据量一大就非常的慢了其他有条语句
SELECT tid,subject FROM threads WHERE tid>=(SELECT floor(RAND() * (SELECT MAX(tid) FROM threads))) LIMIT 5;
这样的速度是很快了,不过存在一个问题
当10条记录的时候,中间缺少6,7,8的ID号,如果大于5取5条,很明显就没有5条记录了请教有什么解决方案。谢谢
SELECT tid,subject FROM threads WHERE tid>=(SELECT floor(RAND() * (SELECT MAX(tid) FROM threads))) LIMIT 5;
这样的速度是很快了,不过存在一个问题
当10条记录的时候,中间缺少6,7,8的ID号,如果大于5取5条,很明显就没有5条记录了请教有什么解决方案。谢谢
比如,表里面只有5条记录的情况,随机数是6,SELECT * FROM a LIMIT 6,1;这样就没有值了
不知道是我理解错了你的意思还是,请指教
你的6是怎么得来的?
代码如下
for($i=0;$i<5;$i++){
$query1 = mysql_query("SELECT floor(RAND() * (SELECT MAX(id) FROM a))");
if($row1 = mysql_fetch_array($query1)){
echo $row1[0].",";
}
}生成类似 0,7,8,8,6,
可以具体指导下,随机5个不重复的ID吗?
max(id)你可以select 出来