MySQL ORDER BY订单

时间:2012-09-28 23:44:02

标签: mysql sql-order-by

在MySQL中,这两个查询之间有区别吗?

SELECT * FROM .... ORDER BY Created,Id DESC 

SELECT * FROM .... ORDER BY Created DESC, Id DESC

所需行为:按“已创建”(时间戳)排序(降序)但当两个项目具有相同的“已创建”值时,则使用该ID回退到排序(desc)。

5 个答案:

答案 0 :(得分:1)

是的,有区别。默认顺序为升序,因此:

SELECT * FROM .... ORDER BY Created,Id DESC 

将按Created升序排序,然后Id降序

SELECT * FROM .... ORDER BY Created DESC, Id DESC

将按Created降序排序,然后按Id降序排序

答案 1 :(得分:0)

当然有区别。第一个按CREATED按升序排序,然后如果有多个,则按ID降序对这些行进行排序。第二个按CREATED按降序排序,然后按ID降序排列,如果有倍数。

第二个应该做你想做的事。

(当然,这引出了一个问题:你为什么不亲自试一试?)

答案 2 :(得分:0)

我认为第一个不会工作?

你可以做到

SELECT * FROM .... ORDER BY Created ASC, Id DESC
SELECT * FROM .... ORDER BY Created DESC, Id ASC

但是如果你做不同的话,它会稍微减慢。

答案 3 :(得分:0)

在第一个中,默认排序(ASC)用于Created列。

答案 4 :(得分:0)

日期的默认排序是ASC - 升序。

因此,第一个查询将按升序排列项目,第二个查询将按降序排列。