tp5 随机从数据库取数据方法(不重复)

1.封装方法

~~~

function getRandTable($nums, $tables)

        {

            $num = $nums;    //需要抽取的默认条数

            $table = $tables;    //需要抽取的数据表

            $pk = Db::name($table)->getPK();//获取主键

            $countcus = Db::name($table)->field($pk)->select();//查询数据

            $con = '';

            foreach($countcus as $v=>$val){

                $con.= $val[$pk].'|';

            }

            $array = explode("|",$con);// 拆分

            $data = [];

            foreach ($array as $v){

                if (!empty($v)){

                    $data[$v]=$v;//循环健值

                };

            }

            $a=array_rand($data,$num) ;//随机数组

            $list = Db::name("$table")->where($pk,'in',$a)->select();

            return json($list);

            }

~~~

2.查询数据

~~~

$q =Db::name('cms_testdetail')->where('rand()')->limit(2)->select();

~~~

你可能感兴趣的:(tp5 随机从数据库取数据方法(不重复))