MySQL查询返回错误的行数?
我试图理解一个有超过300万行的表的数据,但是这些数字加起来并不正确。它返回的行数少于表包含的行数MySQL查询返回错误的行数?,mysql,Mysql,我试图理解一个有超过300万行的表的数据,但是这些数字加起来并不正确。它返回的行数少于表包含的行数 SELECT url FROM `archived_urls` GROUP BY url HAVING COUNT(url) > 1; -- rows returned: 29 SELECT url FROM `archived_urls` GROUP BY url HAVING COUNT(url) = 1; -- rows returned: 3078021 SELECT url FRO
SELECT url FROM `archived_urls` GROUP BY url HAVING COUNT(url) > 1; -- rows returned: 29
SELECT url FROM `archived_urls` GROUP BY url HAVING COUNT(url) = 1; -- rows returned: 3078021
SELECT url FROM `archived_urls` GROUP BY url HAVING COUNT(url) < 1; -- rows returned: 0
SELECT COUNT(*) FROM `archived_urls`; -- rows returned: 3078080
SELECT COUNT(url) FROM `archived_urls`; -- rows returned: 3078080
剩下的30排在哪里?我甚至试图用NOT IN找到它们,但都没有成功。没有记录丢失,你是在比较苹果和梨 您的第一个查询是:
SELECT url FROM `archived_urls` GROUP BY url HAVING COUNT(url) > 1; -- rows returned: 29
29是表中多次出现的URL数,但不是包含这些URL的记录数
查看以下查询结果:
SELECT url, count(url) FROM `archived_urls` GROUP BY url HAVING COUNT(url) > 1;
返回的行仍然是29行,但如果在counturl列中添加值,则会得到31行。您是否尝试过从存档的URL中选择counturl,结果如何?您可能有一些空值?我检查了空值,但情况并非如此。我检查了COUNTurl和COUNTnull,问题仍然存在。即使我没有,NOT IN查询肯定会捕获到任何剩余内容?缺少的是您第一次查询中的重复内容。有29个URL具有重复内容。因此,这些URL至少有2x29=58行。为什么只加29?
SELECT url, count(url) FROM `archived_urls` GROUP BY url HAVING COUNT(url) > 1;