如何反转mysql表

时间:2009-12-29 21:01:48

标签: sql mysql

我需要显示表中包含的最新数据到最旧的数据。这样的东西不起作用: SELECT * FROM table ORDER BY DESC;。在ORDER BY应该是列的名称之后,我知道它的原因。但我想反转正常的顺序(通常我的意思是从最旧的数据到最新的数据)。怎么做?

6 个答案:

答案 0 :(得分:5)

在您的查询中,DESC代表降序,反向代表升序,或者:

SELECT * FROM table ORDER BY column ASC;

顺便说一下,如果你没有指定一个列,你所谓的“正常顺序”实际上是随机的,除非你指定一个顺序。

答案 1 :(得分:0)

“正常顺序”并不总是从最旧到最新,因为某些记录可能会被删除,然后会被新的记录替换。这意味着“自然顺序”可能看起来有些“随机”,最新鲜的项目位于数据集的中间。

答案 2 :(得分:0)

您需要为插入日期或递增键添加列。

您不能依赖物理存储模式来为您提供正确的订购。根据MySQL文档,无法保证返回的行将按任何特定顺序排列。

  

“...结果行显示为no   特别的顺序。它通常更容易   检查行时的查询输出   以某种有意义的方式排序。至   对结果进行排序,使用ORDER BY子句。“

http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

答案 3 :(得分:0)

您可以创建timestamp类型的新字段,并将默认值设置为CURRENT_TIMESTAMP,然后在该字段上设置ORDER BY

答案 4 :(得分:0)

表中记录的物理排序不能保证与创建它们的顺序相匹配。为此,您需要查找或创建可以排序的字段。 “创建日期”字段,或者可能是添加新记录时增加的id值(如订单ID或其他内容)。

答案 5 :(得分:0)

如果您有自动增量ID,那么可能

order by id desc ? :)