我数据库有一万多条数据,查询一组10条的数据基本在0.077秒左右
代码:
function get random_data($table,$num){
$countcus = db($table)->count();
$min = db($table)->min('id');
$max = $min+$countcus;
if($countcus < $num){$num = $countcus;}
$i = 1;
$flag = 0;
$ary = array();
while($i<=$num){
$rundnum = rand($min, $max);
if($flag != $rundnum){
if(!in_array($rundnum,$ary)){
$ary[] = $rundnum;
$flag = $rundnum;
}else{
$i--;
}
$i++;
}
}
$data = db($table)->where('id','in',$ary,'or')->select();
return $data;
}