2015-05-29 105 views
1

所以,我寫了一個查詢,該查詢應該從'messages'表中獲取15個最新結果,但按日期按降序排列結果。我當前的查詢如下:MySQL查詢多列排序

SELECT * FROM messages 
    WHERE chatID = 1 
    ORDER BY ID DESC, timeSent ASC 
    LIMIT 15 

正如你所看到的,我使用的是「ID DESC」,讓15個最近的結果,但「timeSent ASC」沒有排序的順序結果我希望。

如何糾正我的查詢來實現這一目標?

+2

如果'ID'是唯一的,那麼它不會被'timeSent'指定。 –

+0

你想按日期升序還是降序?不確定您的帖子中是否有錯誤。 (您可以按日期降序查詢,但在查詢中使用'ASC'關鍵字。) – 2015-05-29 10:39:20

+0

試一下ORDER BY timeSent ASC,ID DESC – wiretext

回答

2

首先通過訂購ID來獲取消息,然後根據timeSent對其進行排序。你可以試試這個 -

SELECT * FROM 
    (SELECT * FROM messages WHERE chatID = 1 ORDER BY ID DESC LIMIT 15) messages_ordered 
ORDER BY timeSent ASC