Possible Duplicate:
MySQL Query GROUP BY day / month / year
我有以下 mysql:
SELECT MONTH( FROM_UNIXTIME( `timeStamp` ) ) as month , COUNT( `id` ) as count
FROM `discusComments`
GROUP BY MONTH( FROM_UNIXTIME( `timeStamp` ) )
ORDER BY MONTH( FROM_UNIXTIME( `timeStamp` ) ) ASC
LIMIT 15
它获取过去 15 个月中每月输入的条目数量。我想知道为什么它只显示过去 12 个月......然后我意识到计数是所有年份的总计,而不是每个月的唯一值。因此 12 月的值可能是 2012 年和 2011 年的总和。
我不想要这个。我想要获取过去 15 个月以及针对唯一月份年份的条目数量,例如2012年12月、2012年11月等
最佳答案
我对此最直接的想法通常是将日期值的格式更改为唯一且可说话的字符串,例如 2012-12 表示 2012 年 12 月,2011-10 表示 2011 年 10 月等。
您可以使用的函数是 DATE_FORMAT()
:
DATE_FORMAT(FROM_UNIXTIME(timeStamp), '%Y-%m')
这些字符串可以轻松排序,例如升序:
2011-10
2011-11
2011-12
...
2012-10
2012-11
2012-12
SQL 查询示例:
SELECT
DATE_FORMAT(FROM_UNIXTIME(timeStamp), '%Y-%m') as month,
COUNT(id) as count
FROM discusComments
GROUP BY month
ORDER BY month ASC
LIMIT 15
关于php - 按每年唯一的月份分组,而不仅仅是月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13905353/