2017-08-03 111 views
-3

我有一個表,其中一列名爲'created_at'。現在我想要按月份記錄所有記錄,並從當月開始按月訂購。如何編寫mysql查詢按月從月份開始排序數據

這裏是MySQL查詢我到目前爲止已經寫:

SELECT count(id),MONTH(created_at) as month 
FROM `perks` 
GROUP BY created_at 
ORDER BY MONTH(created_at) 

進出看跌期權: out put

我需要月月(8)第一,因爲它是當前月份,然後9, 10,11,12,1,2 ...等等。

任何好友都可以幫助解決此問題嗎?

+4

您的代碼請求以便我們幫助您。 –

+0

超級難以編寫沒有任何數據模式的查詢。而一個命名的列不夠用。沒有表格,沒有數據......沒有查詢。另外:當你編輯你的問題以包含這些細節(包括樣本數據和期望的輸出)時,還包括你已經嘗試了什麼以及你被困在哪裏。 –

+0

到目前爲止您嘗試過什麼? –

回答

0

您可以使用

GROUP BY MONTH(CURRENT_DATE()) 
+0

也許可以按月訂購,並且在哪裏日期>現在也可以。 –

+0

@CaiusJard,你的解決方案將不起作用。 GROUP BY MONTH(CURRENT_DATE())將只返回當前月份的數據,而date> now將返回數據的日期大於今天。我也需要舊數據。 – Chirag

1

由於jaymin表示你需要組由一個月,沒有時間

GROUP BY MONTH(created_at) 

此外,如果有,現在需要排除之前很多次,使用where子句:

WHERE created_at > current_date() 

如果你的數據包括明年的日期,你可能需要group by year(created_at), month(created_at)也是這樣的命令,除非你不在意下一年8月是否捲入今年8月等

如果打算將所有東西都放在一起,並且讓月份圍繞着當前月份,您需要:

ORDER BY CASE WHEN MONTH(created_at) >= MONTH(current_date()) THEN 1 ELSE 2, MONTH(created_at) 
+0

確切:)同意 –