我有一个mysql数据库。如何选择最近的10条记录?我没有存储时间戳。但最近的记录是最底层的仪式?也。我如何获得下一个十,接下来的十个,依此类推按钮。有点像一堆论坛帖子。最近出现的那些首先出现。
答案 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更远的地方减去...但至少这样,系统甚至不会尝试处理所有其他记录......