tp5 查询重复数据只留一条 查询重复 去重查询
2020-09-05 09:42:11 来源: 评论:0 点击:
今天给大家分享的内容是,查询重复数据下面的代码是 后台控制器的具体代码,public function select_repeat(){$test_data= Db::table(&
今天给大家分享的内容是,查询重复数据
下面的代码是 后台控制器的具体代码,
public function select_repeat()
{
$test_data= Db::table('data');
//获取phone列数组
$data_phone = Db::table('data')->column('phone');
//去重查询
$data=$test_data->Distinct(true)->field('phone')->order('id asc')->select();
//dump($data);die;
//将获取到的数组去重
$unique_arr = array_unique ( $data_phone );
//dump($unique_arr);die;
// 获取重复数据的数组
$array = array_diff_assoc ( $data_phone, $unique_arr );
//sql原生查询重复数据并且只留一条
$res = Db::execute('DELETE from data WHERE (phone) in
(SELECT phone from (SELECT phone FROM data GROUP BY phone HAVING COUNT(phone)>1) s1)
AND id NOT in (SELECT id from (SELECT id FROM data GROUP BY phone HAVING COUNT(phone)>1) s2)
');
}
上面代码有一个 sql原生语句查询的方法,
具体看您的需求,是用原生语句,还是用原生语句上面的方法,自己看情况而用。
上面代码有一个 sql原生语句查询的方法,
具体看您的需求,是用原生语句,还是用原生语句上面的方法,自己看情况而用。
分享到:
收藏
