【问题标题】:Mysql order by two columns, primary, and secondaryMysql按两列排序,主要和次要
【发布时间】:2016-07-06 16:52:46
【问题描述】:

我有一个表格,我想按日期 (end) 以降序选择数据,然后按 key 重新排序。

SELECT * FROM `payschedule`
WHERE `end` <= CURDATE()
ORDER BY `end` DESC,
`key` ASC
LIMIT 3

例如,如果我有:

key   end
1     2014...
2     2015...
3     2016...
4     2017...
5     2018... // current date

我的查询应该返回:

3    2016
4    2017
5    2018

【问题讨论】:

  • 不要使用保留字作为表/列标识符。它会让你(和/或我们)发疯。
  • @nic 你能解释一下吗
  • @MaheshMadushanka 请参阅下面 EoinS 的答案。

标签: mysql sql-order-by


【解决方案1】:

您可以使用子查询:

SELECT * from 
(
SELECT * FROM `payschedule`
WHERE `end` <= CURDATE()
ORDER BY `end` DESC
LIMIT 3
) t
order by `key` ASC

Here is an example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2012-10-19
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多