Laravel Mysql多条件重复去重

亲测可用:

public function deWeight()
    {
        $uniqueAddresses = [];
        $duplicates = [];

        YunUserEntry::orderBy('id', 'desc')->get()
            ->map(function (YunUserEntry $venue) use (&$uniqueAddresses, &$duplicates) {
                $address = sprintf("%s.%s.%s",
                    $venue->company_id,
                    date('Y-m-d', strtotime($venue->interview_date)),
                    $venue->id_no);

                if (in_array($address, $uniqueAddresses)) {
                    // address is a duplicate
                    $duplicates[] = $venue->id;
                } else {
                    $uniqueAddresses[] = $address;
                }
            });

        $res = YunUserEntry::whereIn('id', $duplicates)->delete();

        return BaseController::returnJson(200, "去重{$res}条", null);

    }

另外一种:

$uniqueAddresses = [];

Venue::all()
    ->filter(function(Venue $venue) use (&$uniqueAddresses) {
        $address = sprintf("%s.%s.%s",
            $venue->street,
            $venue->house_number,
            $venue->house_number_addition);

        if (in_array($address, $uniqueAddresses)) {
            // address is a duplicate
            return $venue;
        }

        $uniqueAddresses[] = $address;
    })->map(function(Venue $venue) {
        $venue->delete();
    });
原文地址:https://www.cnblogs.com/sgm4231/p/13291439.html