我可以这样做吗?:
SELECT * FROM calendar ORDER BY ((month * 31) + day)
答案 0 :(得分:4)
是(假设您的表格中有数字列month
和day
)
你不想要吗
SELECT * FROM calendar ORDER BY ((`month` * 31) + `day`)
虽然?
修改强>
实际上只是使用
SELECT * FROM calendar ORDER BY `month`, `day`
除非我遗漏了什么?
答案 1 :(得分:2)
您可以按查询结果中的任意列进行排序。如果你可以SELECT
这样的即时准备信息,那么你可以ORDER BY
。
答案 2 :(得分:1)
如果表格中有month
和day
列,那么您应该对查询进行一些更改,它会起作用:
SELECT * FROM calendar ORDER BY ((month * 100) + day)
我从列名中删除了引号,并将月份乘数增加了一个数量级,以确保对月份和日期数大于或等于10的正确排序。另外,我更正了拼写中的拼写错误{ {1}}。
<强> BUT 强>
ORDER
by子句的动态特性,您的查询将在大型数据集上执行缓慢。考虑使用单个日期列并在其上创建索引。