没有订单列值时进行分页?

时间:2013-12-27 09:50:57

标签: mysql paging

我有一个表如下(在MySQL 5中创建):

文章Id | View-Count | Title

假设Id为自动增加,View-Count为长度,表示视图数量

如果我选择按ID排序的所有文章,那么很容易进行分页,例如:

Select * from Article Where id < lastViewedArticleId Order By Id DESC Limit pageSize

但是,如果我按View-Count排序我不能像上面的查询那样做,因为肯定会有一些文章具有相同的视图计数,那么我会想念其中一些。目前,我必须这样做:(如果有数百万条记录,这是一个糟糕的解决方案)

Select * from Article Order By View-Count DESC Limit start, pageSize

有没有人为这种情况提供一些解决方案?

1 个答案:

答案 0 :(得分:0)

为文章创建序列表并定期更新序列(cron)。然后对该分页进行分页并使用它来分解。

SELECT @sequence := 0;  

CREATE TABLE Article_sequence Select @sequence := sequence +1 as sequence, article_id from Article Order By View-Count DESC

然后从那里做你的分页。

Cron每小时都在工作。这样你就不会错过任何一个节拍。