我有用户及其生日的列表。我需要打印每个月的生日列表并按天分组。例如:按月分组生日结果
周一24(2):Herpina Derpina,李四
周二第27(1):尼古拉斯·凯奇
周五28(1):迈克尔·杰克逊
我怎么能实现只需一个SQL调用?如果我以这种方式对他们进行分组,我将会丢失记录:
SELECT COUNT(*) FROM user GROUP BY MONTH(birthday)
任何想法? (我正在使用mysql + php)
我有用户及其生日的列表。我需要打印每个月的生日列表并按天分组。例如:按月分组生日结果
周一24(2):Herpina Derpina,李四
周二第27(1):尼古拉斯·凯奇
周五28(1):迈克尔·杰克逊
我怎么能实现只需一个SQL调用?如果我以这种方式对他们进行分组,我将会丢失记录:
SELECT COUNT(*) FROM user GROUP BY MONTH(birthday)
任何想法? (我正在使用mysql + php)
您无法获得聚合函数的计数和相同查询中的详细记录。如果名称是必需的,那么您将不得不手动构建PHP中的计数,然后以所需的格式显示记录。
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')
但这不会带来所有的名字:s – andufo 2011-04-11 00:00:04
你是对的。我在PHP方面实现了一个解决方案。谢谢。 – andufo 2011-04-12 04:03:55