2011-03-09 89 views
0

目前,我有一个MySQL查询,看起来像这样...MySQL查询拆分按月

SELECT distinct devid,username FROM auth_log WHERE MONTH(accesstime) = 1; 

这将返回所有月份的这是我想要的。是否有可能返回一个数组或类似的东西作为一个单一的查询一整年或日期范围,但按月分割,从而使我不必像运行多个查询。

SELECT distinct devid,username FROM auth_log WHERE MONTH(accesstime) = 1; 
SELECT distinct devid,username FROM auth_log WHERE MONTH(accesstime) = 2; 
SELECT distinct devid,username FROM auth_log WHERE MONTH(accesstime) = 3; 
+0

只需查询月份范围(以哪种方法漂浮您的船),然后按月份/访问时间排序......您无法获得阵列y的阵列..但它会是一个结果集,将按月排序..然后在前端解释月.. – CarpeNoctumDC 2011-03-09 14:56:56

+0

哦..并确保将月份添加到结果selet ie选择不同的MONTH(访问时间)作为r.month ... – CarpeNoctumDC 2011-03-09 14:58:02

回答

1

如何只获得

SELECT DISTINCT 
    MONTH(accesstime) AccessTimeMonth, 
    devid, 
    username 
FROM auth_log 

,做你的过滤工作,在前端?

+0

完美,这样我可以很容易地绘制它! – 2011-03-09 15:19:24

0
SELECT distinct MONTH(accesstime), devid,username 
    FROM auth_log 
    WHERE MONTH(accesstime) in (1, 2, 3) 

其中月(accesstime)1和

0
SELECT distinct devid, username FROM auth_log WHERE MONTH(accesstime) >= 1 AND MONTH(accesstime) <= 12 ORDER BY MONTH(accesstime); 

之间能进行清理..但只是许多变化的可能被使用的一个