我需要显示表中包含的最新数据到最旧的数据。这样的东西不起作用:
SELECT * FROM table ORDER BY DESC;
。在ORDER BY
应该是列的名称之后,我知道它的原因。但我想反转正常的顺序(通常我的意思是从最旧的数据到最新的数据)。怎么做?
答案 0 :(得分:5)
在您的查询中,DESC代表降序,反向代表升序,或者:
SELECT * FROM table ORDER BY column ASC;
顺便说一下,如果你没有指定一个列,你所谓的“正常顺序”实际上是随机的,除非你指定一个顺序。
答案 1 :(得分:0)
“正常顺序”并不总是从最旧到最新,因为某些记录可能会被删除,然后会被新的记录替换。这意味着“自然顺序”可能看起来有些“随机”,最新鲜的项目位于数据集的中间。
答案 2 :(得分:0)
您需要为插入日期或递增键添加列。
您不能依赖物理存储模式来为您提供正确的订购。根据MySQL文档,无法保证返回的行将按任何特定顺序排列。
“...结果行显示为no 特别的顺序。它通常更容易 检查行时的查询输出 以某种有意义的方式排序。至 对结果进行排序,使用ORDER BY子句。“
答案 3 :(得分:0)
您可以创建timestamp
类型的新字段,并将默认值设置为CURRENT_TIMESTAMP
,然后在该字段上设置ORDER BY
。
答案 4 :(得分:0)
表中记录的物理排序不能保证与创建它们的顺序相匹配。为此,您需要查找或创建可以排序的字段。 “创建日期”字段,或者可能是添加新记录时增加的id值(如订单ID或其他内容)。
答案 5 :(得分:0)
如果您有自动增量ID,那么可能
order by id desc ? :)