我想知道如何通过用户点获得当前用户位置?例子:用户1=点数:100用户2-点数:150用户3-点数:360所以用户3将是第一个,用户2将是第二个,等等。我通过以下方式获取所有用户:
{{ User::count() }}
用户表有一个点行。有什么例子或帮助吗?谢谢你们!
qoefvg9y1#
您可以按用户的点排序。例如user::query()->orderby('points','desc')->get();编辑:如果用户表不是那么大,您可以尝试获取具有行号的所有用户,然后按点在集合中搜索。db::语句(db::raw('set@row:=0'))$users=user::selectraw('*@row:=@row+1 as position')->orderby('points','desc')->get();$点=150$users_by_points=$users->where('points',$points)->values();如果用户的点数相同,可以尝试按点数+行号分组。
bq8i3lrv2#
您可以像下面这样使用laravel的查询生成器。 DB::table('users')->orderBy('points', 'desc')->get()
DB::table('users')->orderBy('points', 'desc')->get()
2条答案
按热度按时间qoefvg9y1#
您可以按用户的点排序。例如user::query()->orderby('points','desc')->get();
编辑:
如果用户表不是那么大,您可以尝试获取具有行号的所有用户,然后按点在集合中搜索。
db::语句(db::raw('set@row:=0'))$users=user::selectraw('*@row:=@row+1 as position')->orderby('points','desc')->get();
$点=150$users_by_points=$users->where('points',$points)->values();
如果用户的点数相同,可以尝试按点数+行号分组。
bq8i3lrv2#
您可以像下面这样使用laravel的查询生成器。
DB::table('users')->orderBy('points', 'desc')->get()