80行数据,首先选择1-20行,第二行选择21-30行

时间:2013-03-16 08:41:46

标签: php mysql select

我有一个包含带时间戳的行的表。

通常情况下,如果我想根据时间获得最新的20行。我用:

$sql = "SELECT * 
    FROM comment 
    ORDER BY time DESC 
    LIMIT 20";

但是现在,我希望在最新的20行和LIMIT之后得到最新的评论。这意味着行21-30。(当然,一切都是根据时间戳)

我怎样才能使用MySQL?

5 个答案:

答案 0 :(得分:3)

MySQL有一个可以与LIMIT一起使用的内置偏移量:

$sql = "SELECT * FROM comment ORDER BY time DESC LIMIT 10, 20";

另请参阅此SO帖子:MySQL LIMIT/OFFSET: get all records except the first X

答案 1 :(得分:1)

$sql = "SELECT * FROM comment ORDER BY time DESC LIMIT 20, 10";

答案 2 :(得分:1)

希望它能从21到30条记录中选择

sql = "SELECT * FROM comment ORDER BY ID DESC LIMIT 20, 10";

答案 3 :(得分:0)

尝试混合限制

$sql = "select * from (SELECT * FROM comment ORDER BY time DESC LIMIT 30) as A order by time ASC limit 10";

内置偏移方法的mysql其他人发布的内容看起来更好。

答案 4 :(得分:-1)

有两种选择:

  • 获取30行并使用PHP将结果集拆分为20个组 和一组10人。
  • 发送两个查询,一个用于20个,一个用于10行。