【发布时间】:2012-12-01 09:19:06
【问题描述】:
我有一张表,其中列出了一年中的所有十二个月。我想订购此列,当前月份在底部,然后按时间顺序排列,如果我现在运行查询;
十二月
一月
二月
...
九月
十一月
月份的格式为 MONTHNAME(STR_TO_DATE(U.month, '%m'))
我根据我在此处找到的内容对其进行了改编,但这仅有助于确保当前月份排在最后,有什么想法吗?
ORDER BY (CASE
WHEN Month = MONTH(NOW())
THEN 1
ELSE 0
END ) ASC, month ASC
【问题讨论】:
-
这是您要在生产环境中重复使用的查询,还是用于一次性报告目的?
-
好吧,它会在不寻常的场合使用,所以优化不是一个大问题,如果这就是你想要的?
-
是的,这就是我问的原因。如果您对此进行定期查询,我建议的答案将包括更改字段类型。
标签: mysql sql-order-by