MySQL - 在select语句中循环?

时间:2012-08-03 13:52:16

标签: mysql select loops split

我有一个表格,记录有关ID完成的任务的各种信息。 该表看起来像:

ID Mark ------Date
1    50 -----03/08/2012
1    60 -----01/07/2012
2    40 -----05/08/2012
2    50 -----02/07/2012
.... etc

我想做的是,结果如下:

ID Marks_In_Jul ---Marks_In_Aug
1  -------60 -----------------50       
2  -------50 -----------------40

....等(如果需要,可以将列分成几个月,几周,几天)

我可以手动执行此操作:

SELECT 
id,
sum(if(date BETWEEN '2011-07-01' AND '2011-07-31', mark,0)) as Marks_In_Jul,
sum(if(date BETWEEN '2011-08-01' AND '2011-08-31', mark,0)) as Marks_In_Aug,
...
GROUP BY id;
.... etc

但这都是手动的,如果我想将其缩小到几周,手动更改日期需要时间(白天几乎不可能)

有没有办法,在MySQL中进行某种循环或类似的东西,我可以在这里改变开始/结束值和所需的间隔天数(1,7或30等......)

谢谢你, 唐

0 个答案:

没有答案