我有一个带有以下内容的mysql表:
id --- name --- start_year --- end_year
1 --- george --- 2005 --- 2009
如何使用mysql查询从这一年到以下年份的年份:
2005
2006
2007
2008
2009
?
答案 0 :(得分:1)
使用您喜欢的任何答案in here,生成一个数字列表,例如1000到4000
这样做的时候
SELECT * FROM rowgen
您应该看到一个数字列表:
num
1000
1001
1002
...
3999
4000
或者您的日期可以接受的任何范围。也许2000年到2050年就可以了。无论如何...然后,您只需将列表加入表ON rowgen.num BETWEEN start_year AND end_year
SELECT *
FROM
yourtable t
INNER JOIN
rowgen r
ON r.num BETWEEN t.start_year AND t.end_year
您将获得:
1, George, 2005, 2009, 2005
1, George, 2005, 2009, 2006
1, George, 2005, 2009, 2007
1, George, 2005, 2009, 2008
1, George, 2005, 2009, 2009
最后一列是生成的行号