2011-03-09 109 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); 

之間能進行清理..但只是許多變化的可能被使用的一個