强制mysql从表底部开始查询

时间:2012-09-05 21:32:45

标签: mysql sql

我可以运行从表格底部开始到顶部的mysql查询而不添加递增列吗?

我有一个用户访问过的页面的历史记录,我希望用最近访问过的页面显示它们,我只记录该网址,我不记录时间或其他任何内容。

我是否必须添加一个包含递增数字或类似内容的列,或者是否有办法从表格底部运行查询到顶部?

如果我必须添加一列什么是最佳选择?

我发现了这个类似的问题,但它没有回答我的问题,但我想我会把它链接到这里: Scanning a mysql table from the bottom

4 个答案:

答案 0 :(得分:2)

正如其他人所提到的,表没有固有的顺序。 SQL的“顶部”或“底部”没有概念。结果集有一个order by概念,但这是不同的。

最简单的方法是在表格中添加自动增量列。这将保证每行具有不同的值。您可以继续只插入一个值。 。 。自动增量是默认值。当您从表中提取时,请使用order by id desc获取最新添加内容。

答案 1 :(得分:1)

您应该包含某种订单,不能保证在表格中按照插入顺序排列项目。

这不是像excel那样的有序列表。

您应该添加CreatedDate列,然后添加ORDER BY CreatedDate DESC

答案 2 :(得分:1)

添加

ORDER BY DESC

在SQL语句的末尾。

答案 3 :(得分:0)

Order By子句的问题在于,它已 在程序已经搜索了整个表之后才应用到结果中,当您拥有数十亿条记录时,这将导致搜索时间过长, (在我的情况下,它超时了)此处的想法是强制程序从最新记录开始,并添加LIMIT的{​​{1}},然后向您显示1000当程序达到极限而无需搜索整个表时,您可以看到这种方法,您可以看到这种方法使用最早的记录有效,但反之则不行。