我可以运行从表格底部开始到顶部的mysql查询而不添加递增列吗?
我有一个用户访问过的页面的历史记录,我希望用最近访问过的页面显示它们,我只记录该网址,我不记录时间或其他任何内容。
我是否必须添加一个包含递增数字或类似内容的列,或者是否有办法从表格底部运行查询到顶部?
如果我必须添加一列什么是最佳选择?
我发现了这个类似的问题,但它没有回答我的问题,但我想我会把它链接到这里: Scanning a mysql table from the bottom
答案 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
当程序达到极限而无需搜索整个表时,您可以看到这种方法,您可以看到这种方法使用最早的记录有效,但反之则不行。