MySQL单查询COUNT

时间:2013-10-03 20:21:22

标签: php mysql count

这些问题太多了,太荒谬了。然而,即使阅读了很多,我仍然没有达到我想要的结果。

使用PHP,我使用以下查询轮询MySQL数据库

SELECT COUNT(`NumRecip`) AS `Total`
FROM `Messaging`
WHERE `Type`='Response'
AND `datetime`>='2013-09-01 00:00:00'

我还尝试添加GROUP BY NumRecip并尝试COUNT(*),但我得到了结果55.(如果您尝试这个,显然不会是相同的答案)。 55并不是随意的。 55是适合此上下文的行数。答案应该在150到250之间(只是猜测,但无论如何)。我使用了Max(NumRecip)并得到了66(这是最大顺便说一句),但我想要每个值的全部总和。

长话短说...我想要一个查询将计算所有的2s,3s,6s和66,并获得我的最终答案,而不是55(行数)或66(最大数量)。

我尝试的所有查询:

SELECT COUNT(`NumRecip`) AS `Total`
FROM `Messaging`
WHERE `Type`='Response'
AND `datetime`>='2013-09-01 00:00:00'

-

SELECT COUNT(*) AS `Total`
FROM `Messaging`
WHERE `Type`='Response'
AND `datetime`>='2013-09-01 00:00:00'
GROUP BY `NumRecip`

-

SELECT COUNT(`NumRecip`) AS `Total`
FROM `Messaging`
WHERE `Type`='Response'
AND `datetime`>='2013-09-01 00:00:00'
GROUP BY `NumRecip`

-

SELECT COUNT(*) AS `Total`
FROM `Messaging`
WHERE `Type`='Response'
AND `datetime`>='2013-09-01 00:00:00'
GROUP BY `NumRecip`

-

SELECT MAX(`NumRecip`) AS `Total`
FROM `Messaging`
WHERE `Type`='Response'
AND `datetime`>='2013-09-01 00:00:00'

我可以进行批量查询,执行while($row=mysql_fetch_assoc($query)){并继续将NumRecip添加到总变量中,但我假设有一个单查询选项可以执行此操作,并且因此,更快的方式。

1 个答案:

答案 0 :(得分:2)

Count仅显示行数。如果要添加所有数字,请使用SUM()

SELECT SUM(`NumRecip`) AS `Total`
 FROM `Messaging`
 WHERE `Type`='Response'
 AND `datetime`>='2013-09-01 00:00:00'