所以我这样计算
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每次都会返回两倍的条目数。
有没有人知道可能导致此事的任何事情?
由于 特蕾西
答案 0 :(得分:1)
DISTINCT
关键字告诉MySQL
从结果集中删除重复的行。因为SELECT COUNT(prod.id)
会返回一行(我猜这个,在看到完整的查询之前我无法确定),在DISTINCT
前面添加COUNT()
并不会以任何方式改变其行为
你可能想要的是SELECT COUNT(DISTINCT prod.id)
,这是完全不同的事情。在计算它们之前,它会删除prod.id
的重复值。
答案 1 :(得分:0)
您的第一个查询是计算有多少prod.id。 您的第二个查询显示了所有不同的prod.id。
这是完全不同的。
如果您在没有明确关键字的情况下进行第二次查询,则该数字将相同。