【发布时间】:2020-03-17 05:17:38
【问题描述】:
所以我正在尝试获取具有更高 ID 号的重复数据,以便我可以删除最新的重复数据(而不是旧的)。
我尝试过使用 orderBy,但它不起作用
$duplicates = MasterPayrollInput::where('periode', $month)
->orderBy('id', 'asc')
->groupBy('nip')
->havingRaw('count(*) > 1')
->get();
$duplicatesid = array_column($duplicates->toArray(), 'id');
$todelete = array_map(function($item){ return $item[0]; }, $duplicatesid);
MasterPayrollInput::whereIn('id', $duplicatesid )->delete();
【问题讨论】:
-
使用
MAX获取最新的id。你应该像SELECT max(col) FROM tablename GROUP BY colname HAVING count(col) > 1这样写你的查询