我有下面的查询,它应该从一个名为users的mysql表中获取所有“record”字段。记录字段的值必须大于0才能计数。只有找到3条或更多记录时,查询才会返回true(其中记录>0)
下面的查询对我来说很有意义,但它返回以下php错误:操作数应包含2列
$query = "
SELECT * FROM users u
WHERE (
SELECT COUNT(record) AS record,
SUM(CASE WHEN record > 0 THEN 1 ELSE 0 END)
FROM users
) >= 3
";
sum和count不能在同一个查询中使用吗?我过去同时使用过,没有问题。
任何帮助都很好谢谢
编辑
2条答案
按热度按时间2ul0zpep1#
我只想在上表中的值字段大于0时返回结果。但我也只想返回一个结果,如果在表中找到的值的总数(其中值>0)是3或更多。
ztmd8pv52#
你可以用
count
要计数的函数,awhere
限制数据,以及having
函数来检查您是否有所需的记录数。演示:http://sqlfiddle.com/#!9月29日ED41E/1
通过上面的查询,php将把结果作为第一个索引,或者
counted
取决于你如何取货。您不需要循环获取,因为只返回1行。大致:
行数将是1,因此您不希望计算行数,而是希望实际返回值。