如何反转Mysql中的默认排序?

时间:2009-11-27 06:22:18

标签: sql mysql sorting sql-order-by

在Mysql中,当你执行select SQL语句时,如果你不包含一个排序子句,有一个默认排序,如何反转默认排序?只需添加DESC

5 个答案:

答案 0 :(得分:5)

如果您希望数据一致排序,则必须使用ORDER BY,然后使用要按顺序排序查询的列。 ASC是默认值,因此您无需指定它。 IE:

ORDER BY your_column

......相当于:

ORDER BY your_column ASC

ASC / DESC基于每列。例如:

ORDER BY first_column, second_column DESC

...表示查询将使用first_column按升序排序second_column按降序排列结果集。

答案 1 :(得分:3)

如果您没有指定ORDER BY子句,则没有保证顺序,因此未定义“默认顺序的反向”。

答案 2 :(得分:3)

您可以在结果字段中设置计数器并使用它进行排序:

SELECT *, @counter := @counter + 1 AS 'counter' FROM tableName, (SELECT @counter := 0) r ORDER BY counter DESC

我认为它会按你的意愿运作。

答案 3 :(得分:1)

我认为通过指定您真正想要的订单会更好。表格本质上没有订单。它可能只是按照插入行的顺序显示 - 虽然不能保证它会按顺序保留。

有可能,您可能只想添加此内容:

ORDER BY id DESC

...从大多数时候开始,人们使用名为“id”的自动递增字段

答案 4 :(得分:1)

除非您可以在ORDER BY子句中指定列名,否则您无法使用DESC,并且您将不得不诉诸涉及LIMIT的技巧来查看最后几个记录。

我认为这是不能令人满意的。