laravel通过列值获取唯一结果过滤器

laravel通过列值获取唯一结果过滤器,laravel,Laravel,我有一个用户表,其中有一列成员Id。我需要获取成员身份Id列中没有重复值的行。例如,这是我的表结构 ID Name Membership Id 1 xxx 123 2 xxx 124 3 xxx 124 4 xxx 125 在输出中,我想跳过成员身份Id有重复值的行,只想获取最后一行,所以输出应该是上面示例中的第1、3、4行 MyModel::distinct()->get(['column_name']); 给你 User::dis

我有一个用户表,其中有一列
成员Id
。我需要获取
成员身份Id
列中没有重复值的行。例如,这是我的表结构

ID   Name  Membership Id 
1    xxx   123
2    xxx   124
3    xxx   124 
4    xxx   125 
在输出中,我想跳过成员身份Id有重复值的行,只想获取最后一行,所以输出应该是上面示例中的第1、3、4行

MyModel::distinct()->get(['column_name']);
给你

User::distinct()->get(['Membership Id']);
通过雄辩

User::select('Membership_Id')->distinct()->get();
Vie db立面

DB::table('users')->select('Membership_Id')->distinct()->get();
使用子查询联接:

$join=User::select('membership_id',DB::raw('max(id)id'))
->groupBy(“成员身份”);
$sql='('.$join->toSql()')作为最新版本';
$users=User::join(DB::raw($sql),function($join){
$join->on('users.membership\u id'、'latest.membership\u id')
->on('users.id','latest.id');
})->get();
在Laravel 5.6.17中,您可以使用:

$join=User::select('membership_id',DB::raw('max(id)id'))
->groupBy(“成员身份”);
$users=User::joinSub($join,'latest',函数($join){
$join->on('users.membership\u id'、'latest.membership\u id')
->on('users.id','latest.id');
})->get();

我不知道laravel是如何工作的,但在SQL中可以使用“Distinct”关键字。laravel也有Distinct关键字,但我不知道如何仅用于一列,但此查询将返回成员身份Id,我想要所有表值我认为您没有发布整个响应