假设我们有一个名为的表record
,它有 3 个字段
id
email
ip
情况
我们必须找出哪些电子邮件地址使用了超过 2 个 IP 地址以及这些 IP 地址是什么。现在,如果只是关于COUNT
我们只需使用
SELECT email,COUNT(DISTINCT ip) as C FROM record GROUP BY email HAVING(c>2)
但我还需要查看那些 IP 地址。所以预期的输出就像
email1@example.com 192.168.0.1 email1@example.com 192.168.0.2 email1@example.com 192.168.0.3 email1@example.com 192.168.0.4 email1@example.com 192.168.0.5 ...ETC... email2@example.com 192.168.1.3 email2@example.com 192.168.1.4 email2@example.com 192.168.1.5
有什么建议如何在不杀死 MySQL 的情况下将表加入自身并获得所需的输出以获取 100 万条记录?
注意:请注意,ip 存储为 INT 并已编入索引。我不需要帮助将该 ip 转换回它的字符串表示形式,对于这个问题的任何实际答案都可以忽略它。