/*tp5 高效率随机抽取数据(不重复)*/ $num = 1;//需要抽取的默认条数 $tableDb = \think\Db::name('Motto');//需要抽取的数据表 $countcus = $tableDb->count();//获取总记录数 $min = $tableDb->min('id');//统计某个字段最小数据 if($countcus < $num){$num = $countcus;} $i = 1; $flag = 0; $ary = array(); while($i<=$num){ $rundnum = rand($min, $countcus);//抽取随机数 if($flag != $rundnum){ //过滤重复 if(!in_array($rundnum,$ary)){ $ary[] = $rundnum; $flag = $rundnum; }else{ $i--; } $i++; } } $data = $tableDb->where('id','in',$ary,'or')->select();
转载请注明本文标题和链接:《 tp5 高效率随机查询数据(不重复) 》