MySQL查询的Strang问题

时间:2012-09-24 06:59:29

标签: mysql function count

我正在尝试查找以下查询返回的行数:

SELECT Count(id) AS fcount, 
       user_id 
FROM   customer_followups 
WHERE  id > 0 
       AND Date(followup_date) >= Str_to_date("24-09-2012", "%d-%m-%y") 
       AND Date(followup_date) <= Str_to_date("24-09-2012", "%d-%m-%y") 
GROUP  BY user_id 
ORDER  BY user_id 

它让我回到了5行。

但是如果我在没有count函数的情况下触发查询,我只得到一条记录。见下文:

SELECT id, 
       user_id 
FROM   customer_followups 
WHERE  id > 0 
       AND Date(followup_date) >= Str_to_date("24-09-2012", "%d-%m-%y") 
       AND Date(followup_date) <= Str_to_date("24-09-2012", "%d-%m-%y") 
GROUP  BY user_id 
ORDER  BY user_id 

可能是什么原因?理想情况下,计数应该返回1 ??

1 个答案:

答案 0 :(得分:1)

COUNT为您提供满足条件的组的记录数。

The COUNT function is an aggregate function that simply counts all the items that
are in a group.

在第二个查询中,您只需找到该组的id和user_id。请记住,如果该组具有不同的用户ID,它将返回其中任何一个以查找您可以使用的所有user_id GROUP_CONCAT(),即GROUP_CONCAT(user_id)