我有一个排行榜,上面列出了销售额最高的人。
很简单。它只会得到前25名并显示出来
$user = \App\User::orderBy('sales', 'desc')
->take(25)
->get();
所以这可能会导致
+-------+-------------------+
| pos |user_id| sales |
----------------------------|
| 1 | 1 | 1,293 |
| 2 | 99 | 1,093 |
| 3 | 45 | 985 |
| 4 | 948 | 900 |
| 5 | 39 | 889 |
| 6 | 29 | 887 |
+---------------------------+
现在我如何才能得到的用户谁是谁看排行榜的位置,如果他们不在前25名?
如果用户id 219在935的位置,我想在末尾显示这样的内容
+-------+-------------------+
| pos |user_id| sales |
|---------------------------|
| 935 | 219 | 87 |
+---------------------------+
如何在不计算用户数量的情况下有效地实现这一点(因为有成千上万的用户)
1条答案
按热度按时间rn0zuynd1#
我想你有当前的用户数据。因此,您不必查询数据库来获取当前用户
id
或者sales
. 所以,主要的问题是找到拥有更多用户的计数sales
比现在的情况要好。所以,你需要一个类似
将其转换为laravel查询并添加
1
启动时。