如何选择最近的10条记录

时间:2011-01-01 11:51:43

标签: php sql mysql

我有一个mysql数据库。如何选择最近的10条记录?我没有存储时间戳。但最近的记录是最底层的仪式?也。我如何获得下一个十,接下来的十个,依此类推按钮。有点像一堆论坛帖子。最近出现的那些首先出现。

3 个答案:

答案 0 :(得分:5)

我相信您有一个自动增量列作为主键,您可以使用此列并按desc排序

select * from table order by id desc  limit 10

否则您的数据库设计非常糟糕

答案 1 :(得分:3)

如果您有一个AUTO_INCREMENT列,则可以按降序排序,然后按10进行排序。

但我建议您存储时间戳和订单,以便知道您根据日期对记录进行排序,而不是与日期重合的其他值插入。

答案 2 :(得分:1)

除了@BoltClock提到的内容之外,预先显示最大ID可能有助于引擎检索其他记录...即:如果你有一百万条记录,而且最近的10条,我不知道它是否会仍然试图查询百万,订购它们,然后转储它..我会尝试类似

select STRAIGHT_JOIN
      YT.*
   from 
      ( select max( IDColumn ) as MaxOnFile
           from YourTable ) PreQuery,
      YourTable YT
   where 
      YT.IDColumn >= PreQuery.MaxOnFile -10
   order by
      YT.IDColumn DESC
   limit 10

但是,如果由于某种原因,允许删除记录,您可以选择比-10更远的地方减去...但至少这样,系统甚至不会尝试处理所有其他记录......