【问题标题】:MySQL query multiple column orderingMySQL查询多列排序
【发布时间】:2015-08-12 04:33:51
【问题描述】:

所以,我编写了一个查询,它应该从“消息”表中获取 15 个最新结果,但按日期按降序排列结果。我目前的查询如下:

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

如您所见,我使用“ID DESC”来获取最近的 15 个结果,但“timeSent ASC”并未按照我希望的顺序对结果进行排序。

如何更正我的查询以实现此目的?

【问题讨论】:

  • 如果ID 是唯一的,那么它不会被timeSent 排序。
  • 你想按日期升序还是降序?不知道你的帖子是否有错误。 (您按日期降序询问,但在查询中使用 ASC 关键字。)
  • 试一试 ORDER BY timeSent ASC,ID DESC

标签: php mysql mysqli


【解决方案1】:

首先通过排序ID 获取消息,然后根据timeSent 对其进行排序。你可以试试这个——

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多