MySQL:使用distinct时,Count返回两倍的条目数

时间:2015-01-21 11:00:53

标签: mysql

所以我这样计算

select distinct count(prod.id) from product as prod.... 

我回来175590

我选择这样的

select distinct prod.id from product as prod.... (rest of the query is exactly the same) 

我限制它。现在,如果我将查询限制为在中间点返回任何内容,则不返回任何内容。看起来好像count每次都会返回两倍的条目数。

有没有人知道可能导致此事的任何事情?

由于 特蕾西

2 个答案:

答案 0 :(得分:1)

DISTINCT关键字告诉MySQL从结果集中删除重复的行。因为SELECT COUNT(prod.id)会返回一行(我猜这个,在看到完整的查询之前我无法确定),在DISTINCT前面添加COUNT()并不会以任何方式改变其行为

你可能想要的是SELECT COUNT(DISTINCT prod.id),这是完全不同的事情。在计算它们之前,它会删除prod.id的重复值。

答案 1 :(得分:0)

您的第一个查询是计算有多少prod.id。 您的第二个查询显示了所有不同的prod.id。

这是完全不同的。

如果您在没有明确关键字的情况下进行第二次查询,则该数字将相同。