如果这个解释不是100%清楚,我很抱歉。用分页过滤
我想根据用户的评级列出用户的顺序(然后按其用户名排序)。实际上我试图对结果进行分页,因为可能会有大量的结果。
我有两个表:
- 表答:列 “用户id”
- 表B:与列 “等级” 和 “用户id” 和 “组识别符号”
有其他专栏,但这些在这里是相关的。
每个用户都可以使用以下值提交组的评分:-1,0或1,以“评分”记录。每组的净评级通过获得与给定组相对应的“状态”评分的净总和来评估。
我有这个基本的查询:
SELECT groupid, userid, SUM(rating)
FROM A LEFT JOIN B ON A.userid = B.userid
GROUP BY A.userid
ORDER BY SUM(rating) DESC, A.userid ASC
不过,我想分页,所以我需要能够基于先前显示的最后一个用户ID进行选择的结果。
通常,根据任何比userid大的显示结果筛选结果将很容易。但是,由于我根据SUM(评级)排序了结果,因此实际上没有顺序排序系统。
即使我的用户标识在结果中没有按顺序排序,是否有一种很好的方法来过滤我的结果以进行分页?
whats you host ide?或者只是纯粹的SQL? – Simon
只是纯粹的Mysql – user1059872
我能想到的唯一的事情就是可以在这里工作,就是创建另一个填充了用户ID评级顺序的表。你会保持这个更新的日期日期评分改变。因此,当您运行整体查询时,请使用此表与您的表B连接,并按照条款 – Simon