Mysql COUNT(*)返回多行而不是一行
当我只需要查询生成的行总数时,为什么COUNT()返回多行 应返回1078Mysql COUNT(*)返回多行而不是一行,mysql,count,Mysql,Count,当我只需要查询生成的行总数时,为什么COUNT()返回多行 应返回1078 不要使用分组方式,它会计算每组的数量。好的,简单的答案。如果不需要分组,请不要分组 如果要对组进行计数,可以使用COUNT(DISTINCT articles.company)而不使用groupby,或者保留groupby并将整个查询包装在中,从(…)选择COUNT(*)作为数据。当您放入group by子句时,count()会给出group by的结果。如果希望获取包含分组依据的查询中的行数,请将其用作子查询 比如:
不要使用分组方式,它会计算每组的数量。好的,简单的答案。如果不需要分组,请不要分组 如果要对组进行计数,可以使用
COUNT(DISTINCT articles.company)
而不使用groupby
,或者保留groupby
并将整个查询包装在中,从(…)选择COUNT(*)作为数据。当您放入group by
子句时,count()
会给出group by
的结果。如果希望获取包含分组依据的查询中的行数,请将其用作子查询
比如:
SELECT COUNT(*) FROM (SELECT * FROM `table`
GROUP BY `column1`) AS `a`
将上面的查询写为子查询,这样它将给出正确的结果,并且不使用GROUPBY
select count(*) from (select articles.id from 'contract_prices' left join 'articles' on
(arcticles.id = contract_prices.article)
where 'contract_to' >= curdate()
)
从中选择计数(*)(从“合同价格”中选择articles.id左键连接上的“articles”
(arcticles.id=合同价格条款)
其中'contract_to'>=curdate()
)
实际上我需要分组,所以它应该返回正确的数字。@silkfire是的。如果需要,它将返回每个组的计数。如果你想返回所有物品的数量,只需删除群组。谢谢,你的答案就是我需要的。谢谢@silkfire。如果这解决了您的问题,请将其标记为答案。