试试下面的代码:
MySQL select 10 random rows from 600K rows fastORDER BY RAND()
下面是字符串$query="select * from member where fenlei in (1,2,3,4) order by id desc"
$result=mysql_query($query,$db)
$len=1
$i = 0
while ($res=mysql_fetch_array($result))
{
$arraylist[$len].=$res['fenlei'].'-'.$res[name].'<br>'
$i++
if(is_int($i/10))
{
$len++
$i = 0
}
}
echo $arraylist[1]
echo $arraylist[2]
echo $arraylist[3]
echo $arraylist[4]
下面是数组,
$query="select * from member where fenlei in (1,2,3,4) order by id desc"
$result=mysql_query($query,$db)
$len=1
$i = 0
while ($res=mysql_fetch_array($result))
{
$arraylist[$i] = $res[name]
$i++
$tr_list[$len] = $arraylist
if(is_int($i/10))
{
$len++
$i = 0
}
}
print_r($tr_list[1])
print_r($tr_list[2])
print_r($tr_list[3])
print_r($tr_list[4])
1.通过MYSQL内置的函数来操作,具体SQL代码如下:SELECT * FROM tablename ORDER BY RAND() LIMIT 10
2.不要将大量的工作给数据库去做,这样会导致数据库在某一集中并发时间内锁死并阻塞。
建议通过PHP随机生成一下1-X(总行数)之间的数字,然后将这10个随机数字作为查询条件,具体语句如:
SELECT * FROM tablename where ID in (2,8,4,11,12,9,3,1,33)
可能你还要进行重复排除,并且需要在程序中将10个值串联并连接进入SQL语句中。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)