在Mysql中,当你执行select SQL语句时,如果你不包含一个排序子句,有一个默认排序,如何反转默认排序?只需添加DESC
?
答案 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
的技巧来查看最后几个记录。
我认为这是不能令人满意的。