sql 查询排序 year/month

sql query sorting year/month

嗨,我的 table 结构是这样的

year  month  name
2015   1     adc
2015   2     adc
2015   4     adc
2015   5     adc
2015   6     adc
2015   7     adc
2015   8     adc
2015   9     adc
2015   10    adc
2015   11    adc
2015   12    adc
2016   1     adc
2016   2     adc
2016   3     adc

我想对我的查询结果进行排序,总是从一年中的第 4 个月开始到下一个 year.for 的第 3 个月结束 year.for 例如,如果我想要 2015 年的数据,它应该像

    2015   4     adc
    2015   5     adc
    2015   6     adc
    2015   7     adc
    2015   8     adc
    2015   9     adc
    2015   10    adc
    2015   11    adc
    2015   12    adc
    2016   1     adc
    2016   2     adc
    2016   3     adc

我可以使用 SQL 查询来执行此操作吗?在这里我还需要在第 12 个月后增加年份

您可以为一个条件组合多个列:

select *
from my_table t
where (year, month) >= (2015,   4)
  and (year, month) <= (2015+1, 3)
order by year, month

这个(理论上)应该使用(年,月)索引。

解决了,谢谢

select *
from my_table t
where (year=$year and month>=4)
  or(year=$year+1 and month<=3)
order by year, month