我有一个ranking
模块,其中用户可以搜索的其他用户。结果显示在一个表格中,对于每个结果我也想显示用户当前的排名位置。因此,例如,对于dav
搜索时,结果可能是:计算用户排名
-- Position -- Points -- Name --
30 2345 Dave
105 1650 Davy
965 895 Superdavy
1949 35 Dave123
我的问题是:什么是计算位置的最佳方法是什么?头寸是通过points
订购用户计算的。我可以得到所有的用户
$results = User::where('name', 'LIKE', "%$query%")->orderBy('points')->paginate(25);
但我应该遍历结果和查询数据库中的每个用户来计算排名的位置?还是有更简单的方法?因为,如果搜索中包含50个结果,有人在几秒钟内进行多次搜索,很多数据库的查询被解雇......
请出示其中存储的排名号码或你怎么计算。 –
哎呀,对不起,我更新了答案 – Jordy
不是位置列是多余的吗? –