gpt4 book ai didi

php - 如何使用 Eloquent 方式获得行位置

转载 作者:行者123 更新时间:2023-11-29 01:49:31 27 4
gpt4 key购买 nike

我有一个排行榜,显示销量最高的人。

很简单。它只获取前 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 |
+---------------------------+

这怎么可能在不依赖用户的情况下高效地完成呢? (因为有成千上万的用户)

最佳答案

我想你有当前的用户数据。因此,您不必查询数据库来获取当前用户 idsales。因此,主要问题是找到 count of userssales 多于当前。

所以,你需要这样的查询

SELECT COUNT(*) as pos FROM your_table WHERE sales > %current_user_sales%

将其转换为 laravel 查询并在输出时添加 1

关于php - 如何使用 Eloquent 方式获得行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50655197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com