Mysql查询逻辑没有得到相同的结果

标签 mysql logic

我有一些疑问以确定本月返回的 IP 数量。如果 IP 在同一天返回,则不算“返回”。仅当 IP 在另一天返回时才算数。这是我的查询,但我的逻辑或查询有问题:

SELECT COUNT( ip ) 
FROM ipAll 
WHERE YEAR( DATE ) = '2015' 
AND MONTH( DATE ) = '12' 

所有 IP:875

SELECT COUNT( DISTINCT ip ) 
FROM ipAll 
WHERE YEAR( DATE ) = '2015' 
AND MONTH( DATE ) = '12'  

不同的IP: 588

本月返回的IP:875-588=287;

SELECT ip, COUNT( ip ) AS matches 
FROM ipAll 
WHERE YEAR( DATE ) = '2015' 
AND MONTH( DATE ) = '12' 
GROUP BY ip 
HAVING matches >1 
ORDER BY matches DESC 

返回的行数:104

所以,我有点困惑。第一个结果表示本月返回的 IP 有 287 个,但第二个结果表示本月返回的 IP 有 104 个。我做错了什么,或者我混淆了什么逻辑?

最佳答案

第二个查询为您提供不同的 IP。

第三个查询告诉您,您有 104 个 ip 出现了 2 次或更多次。

这里并不矛盾,你可能有很多ip返回两次以上。第二个和第三个的结果不一定等于第一个。

关于Mysql查询逻辑没有得到相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466771/

相关文章:

php - 需要 mySQL 建议 - 如何构建特定的 mysql 数据库/架构 - 内部示例

mysql - 如何在MySql中编写连接查询?

python - 使用 python 和 sql 将 row 作为变量

java - 不使用算术运算符的乘法、除法和平方根

php - 通知: unserialize(): Error at offset 0 of 5472 bytes ERROR

php - 在 php 和 mysql 中重新打开页面时在下拉列表中显示保存的数据

algorithm - 解决这种逻辑问题的方法是什么?

logic - 异或门和非门在逻辑上是否完整

java - 制作游戏时敌人数量/速度会以一定的分数增量自动增加 - 如何逻辑地实现?

javascript - 在 node.js 中 `module` 总是一个对象吗?