2012-09-28 146 views
0

在MySQL中,這兩個查詢有區別嗎?MySQL ORDER BY order

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

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

期望的行爲:順序(降序)通過「創建」(時間戳),但是當兩個項目都那麼同樣的「創建」值回落到訂貨(DESC)使用Id。

+0

然後使用第二個。第一個是相同的:'ORDER BY創建ASC,Id DESC' –

回答

1

是的,是有區別的。默認順序是升序,這樣:

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

Created升序排列,然後Id下降

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

Created降序排列,然後Id下降

0

當然有區別。第一個訂單按CREATED以升序排列,然後如果有多個排序則按ID降序排列。第二種按CREATED先降序排列,再按ID遞減,如果有倍數。

第二個應該做你想做的。

(當然,這引出了一個問題:爲什麼不乾脆自己嘗試一下,找出?)

0

我覺得第一個不會工作?

你可以做

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

,但如果你做不同的人會稍微放緩。

+0

第一個將工作;如果未指定排序順序,則使用「ASC」。 –

0

在第一個中,默認排序(ASC)用於Created列。

0

日期的快速排序以ASC - 升序排列。

因此,第一個查詢將按升序排列項目,第二個查詢按降序排列。