用分页过滤

时间:2011-11-22 14:08:31

标签: php mysql pagination filtering

如果这个解释不是100%清楚,我会提前道歉。

我正在尝试根据用户的评分顺序列出用户(然后按用户ID排序)。我实际上试图对结果进行分页,因为可能会有大量结果。

我有两张桌子:

  • 表A:列“userid”
  • 表B:列“rating”和“userid”和“groupid”

还有其他列,但这些是相关的列。

每个用户都可以使用以下值提交组的评级:-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大于上次显示的用户ID的结果过滤结果会很容易。但是,由于我根据SUM(评级)对结果进行排序,因此实际上没有顺序排序系统。

是否有一种很好的方法来过滤我的结果以进行分页,即使我的结果中的用户ID不是按顺序排序的?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用带偏移的限制?

http://php.about.com/od/mysqlcommands/g/Limit_sql.htm