2015-05-29 109 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