sql查询排序年/月

时间:2016-04-02 16:59:36

标签: mysql sorting sql-order-by

我的表结构就像这样

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个月开始对我的查询结果进行排序,并以明年的第3个月结束。例如,如果我想要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月之后增加年份

2 个答案:

答案 0 :(得分:1)

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

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

这个(理论上)应该使用(年,月)指数。

答案 1 :(得分:0)

解决了,谢谢

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