【问题标题】:Laravel how to get current user position by pointsLaravel如何按点获取当前用户位置
【发布时间】:2018-08-20 09:15:42
【问题描述】:

我想知道如何通过用户点获取当前用户位置?

例子:

用户 1 = 点数:100 用户 2 - 点数:150 用户 3 - 点数:360

所以用户 3 将是第一个,用户 2 第二个等等。

我通过以下方式获取所有用户:

{{ User::count() }}

用户表有一个点行。

任何示例或帮助?谢谢大家!

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    你可以像下面这样使用 laravel 的查询生成器。

    DB::table('users')->orderBy('points', 'desc')->get()

    【讨论】:

      【解决方案2】:

      您可以按用户的积分排序。例如。 User::query()->orderBy('points','DESC')->get();

      编辑:

      如果用户表不是那么大,你可以尝试获取所有具有行号的用户,然后按点在集合中搜索。

      DB::statement(DB::raw('set @row:=0')); $users = User::selectRaw('*, @row:=@row+1 as position')->orderBy('points','DESC')->get();

      $points = 150; $users_by_points = $users->where('points',$points)->values();

      如果你有相同点的用户,你可以尝试按点+行号分组。

      【讨论】:

      • 感谢您的回复。我知道如何订购。但我需要按点获取用户位置 :) #2 #4 或 #99 例如 :)
      • 试试 $position = 4; User::query()->orderBy('points','DESC')->limit(1)->offset(($position-1))->first();
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多