Php Mysql如何在同一查询中使用SUM和COUNT

Php Mysql如何在同一查询中使用SUM和COUNT,php,mysql,sql,Php,Mysql,Sql,我有下面的查询,它应该从一个名为users的mysql表中获取所有“record”字段。记录字段的值必须大于0才能计数。并且仅当找到3条或更多记录时(其中记录>0),查询才会返回true 下面的查询对我来说很有意义,但是它返回了以下PHP错误:操作数应该包含2列。 不能在同一查询中使用SUM和COUNT吗?我过去同时使用过它们,没有任何问题 任何帮助都很好,谢谢 编辑------------------ Table : users -------------- id value -

我有下面的查询,它应该从一个名为users的mysql表中获取所有“record”字段。记录字段的值必须大于0才能计数。并且仅当找到3条或更多记录时(其中记录>0),查询才会返回true

下面的查询对我来说很有意义,但是它返回了以下PHP错误:操作数应该包含2列。

不能在同一查询中使用SUM和COUNT吗?我过去同时使用过它们,没有任何问题

任何帮助都很好,谢谢

编辑------------------

Table : users 
--------------
id       value
--------------
 1        1
 2        1
 3        1
 4        0
 5        0
 6        -1
 7        -10
 8        0

我只想在上表中的字段大于0时返回结果。但我也只想在表中找到的值总数(其中值>0)为3或更多时返回结果。

您可以使用
count
函数进行计数,使用
where
限制数据,使用
having
函数检查您是否拥有所需的记录数

select count(*) as counted 
from users 
where record > 0 
having counted > 3
演示:

通过上面的查询,您的PHP将把结果作为第一个索引,或者根据您获取的方式计算。您不需要循环获取,因为只返回1行

大致:

$row = $query->fetch();
return $row['counted'];

行数将为1,因此您不想计算行数,而是希望得到实际返回值。

我尚未升级,仍在以前的版本中。它工作正常:)。唯一不起作用的是查询的SUM部分。如果有更好的方法来编写查询,我对itCount持开放态度,SUM肯定可以在同一个查询中使用。出现错误是因为WHERE子句试图将两列结果与单个值(>=3)进行比较。你可能需要加入,但我不清楚你到底想做什么。请发布您的数据样本,包括所有列,我可以为您获取。我认为最好的答案是@user3783243。我只是想用SUM返回数据库中的实数,而不是在php代码中遍历foreach循环!谢谢。真的很有帮助。有没有一种方法可以返回查询的已计数记录数,而不必在phpThanks中进行foreach查找,这是有意义的。很好的解决方案。所以我可以使用类似于
return$query->num_rows()的东西获取总计数?否,将只返回1行。获取行并返回它所具有的值。
$row = $query->fetch();
return $row['counted'];