0

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

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

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

期望的行为:按“创建”(时间戳)排序(降序),但是当两个项目具有相同的“创建”值时,然后回退到使用 Id 排序(降序)。

4

5 回答 5

1

是,有一点不同。默认顺序是升序,所以:

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

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

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

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

于 2012-09-28T23:47:05.610 回答
0

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

第二个应该做你想做的。

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

于 2012-09-28T23:46:36.100 回答
0

我认为第一个行不通?

你可以做

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

但如果你做不同的事情,它会稍微变慢。

于 2012-09-28T23:47:19.503 回答
0

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

于 2012-09-28T23:47:53.317 回答
0

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

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

于 2012-09-28T23:52:51.900 回答