在MySQL中,這兩個查詢有區別嗎?MySQL ORDER BY order
SELECT * FROM .... ORDER BY Created,Id DESC
和
SELECT * FROM .... ORDER BY Created DESC, Id DESC
期望的行爲:順序(降序)通過「創建」(時間戳),但是當兩個項目都那麼同樣的「創建」值回落到訂貨(DESC)使用Id。
在MySQL中,這兩個查詢有區別嗎?MySQL ORDER BY order
SELECT * FROM .... ORDER BY Created,Id DESC
和
SELECT * FROM .... ORDER BY Created DESC, Id DESC
期望的行爲:順序(降序)通過「創建」(時間戳),但是當兩個項目都那麼同樣的「創建」值回落到訂貨(DESC)使用Id。
是的,是有區別的。默認順序是升序,這樣:
SELECT * FROM .... ORDER BY Created,Id DESC
將Created
升序排列,然後Id
下降
SELECT * FROM .... ORDER BY Created DESC, Id DESC
將Created
降序排列,然後Id
下降
當然有區別。第一個訂單按CREATED
以升序排列,然後如果有多個排序則按ID
降序排列。第二種按CREATED
先降序排列,再按ID
遞減,如果有倍數。
第二個應該做你想做的。
(當然,這引出了一個問題:爲什麼不乾脆自己嘗試一下,找出?)
我覺得第一個不會工作?
你可以做
SELECT * FROM .... ORDER BY Created ASC, Id DESC
SELECT * FROM .... ORDER BY Created DESC, Id ASC
,但如果你做不同的人會稍微放緩。
第一個將工作;如果未指定排序順序,則使用「ASC」。 –
在第一個中,默認排序(ASC
)用於Created
列。
日期的快速排序以ASC - 升序排列。
因此,第一個查詢將按升序排列項目,第二個查詢按降序排列。
然後使用第二個。第一個是相同的:'ORDER BY創建ASC,Id DESC' –