2011-04-10 94 views
0

我有用户及其生日的列表。我需要打印每个月的生日列表并按天分组。例如:按月分组生日结果

周一24(2):Herpina Derpina,李四

周二第27(1):尼古拉斯·凯奇

周五28(1):迈克尔·杰克逊

我怎么能实现只需一个SQL调用?如果我以这种方式对他们进行分组,我将会丢失记录:

SELECT COUNT(*) FROM user GROUP BY MONTH(birthday) 

任何想法? (我正在使用mysql + php)

回答

1

您无法获得聚合函数的计数和相同查询中的详细记录。如果名称是必需的,那么您将不得不手动构建PHP中的计数,然后以所需的格式显示记录。

+0

你是对的。我在PHP方面实现了一个解决方案。谢谢。 – andufo 2011-04-12 04:03:55

1
SELECT MONTH(birthday) month, 
     FORMAT(birthday, '%W %D') day, 
     COUNT(user) count, 
     GROUP_CONCAT(user SEPARATOR ',') users 
FROM table 
GROUP BY MONTH(birthday), FORMAT(birthday, '%W %D') 
+0

但这不会带来所有的名字:s – andufo 2011-04-11 00:00:04