mysql 去重 (比较笨重,百度查的一条sql保留一条数据 不适合我的需求,自己写的一个笨重的方法实现的,欢迎大神能指导优化一下) //查询出重复数据 $dd=$memberModel::field('group_concat(distinct member_id) as zz_value,phone,count(1)')->group('phone')->having('count(phone) >=2')->select(); unset($dd[0]);//因为手机号有空的,所以过滤了一下 $arr=[]; foreach ($dd as $k=>$v){ foreach (explode(',',$v['zz_value'])as $kk=>$vv){ $arr[]=$vv; } } var_dump($arr);die;//查询出所有重复数据的id $cc=$memberModel::destroy($arr);//软删除全部重复的信息 var_dump($cc);die; //查询出所有符合我们的筛选条件的数据进行恢复 $bb=$memberModel::onlyTrashed()->whereOr([['usable_money','>',0],['pay_points','>',0]])->column('member_id'); var_dump($bb);die;//所有符合我们所需要的筛选条件的id进行数据恢复 foreach ( $bb as $k=>$v){ $memberModel->restore(['member_id'=>$v]);//恢复数据 } echo '数据处理完毕';die; //TP5查询重复的数据 $dd=$memberModel::field('phone,count(1)')->group('phone')->having('count(phone) >=2')->select(); //Mysql 源生查询 select count(1),字段名 from 表名 GROUP BY 字段名 HAVING count(字段名) >=2