从一个表中的单个记录动态查询多个项目

时间:2014-02-24 16:33:29

标签: mysql sql

我有一个表(arealist),它有一个ID字段和多个字段,用于按年度(M2012,M2013等)跟踪成员资格,其中每年的值为是或否。我可以构建查询以提取我想要的字段(SELECT M2011, M2012, M2013, M2014 FROM arealist WHERE ID = 675;)但是这些领域将在未来几年增长,增加M2015,M2016,M2017等。

我如何构建一个动态查询,提取当前年份信息加上4年前的信息。 示例:EndYear = 2014 - 需要4年后回答为M2011,M2012,M2013,M2014)。

SELECT ??? FROM arealist WHERE ??? RANGE (BegYear to EndYear) AND ID = 675;

1 个答案:

答案 0 :(得分:1)

您应该将年份改为正确的字段,将列M2011,M2012,M2013,M2014,ID更改为1行,列为M,YEAR,ID(YEAR取2011年至2014年的整数值)。

明年,您为YEAR = 2015的每个ID添加一行,依此类推,而不更改表定义或代码:

SELECT M from AREALIST where ID= ? AND YEAR >= ? AND YEAR <= ?