gpt4 book ai didi

mysql - 如何在MySQL中查找相似的IP?

转载 作者:行者123 更新时间:2023-12-02 02:43:45 27 4
gpt4 key购买 nike

我有一个表,其中包含用户的最后一个 IP。使用以下查询我可以找到所有重复的 IP 地址

SELECT id, ip, COUNT(ip) AS ip_count FROM users GROUP BY ip HAVING ip_count > 1

我试图选择仅与最后一部分不同的 IP。以下是一些示例:

+--------------+---------------+---------+
| IP 1 | IP 2 | Similar |
+--------------+---------------+---------+
| 230.15.26.79 | 230.15.26.230 | true |
| 32.82.0.5 | 32.82.0.180 | true |
| 230.15.26.79 | 193.230.15.26 | false |
| 230.15.26.79 | 230.15.39.115 | false |
+--------------+---------------+---------+

我可以使用以下命令手动查找是否存在与特定 IP 相似的 IP:

SELECT id, ip FROM users where ip LIKE "230.15.26.%"

但是,这意味着我必须循环整个数据库,该数据库的容量相当大。

是否有另一种方法可以仅通过一到两个查询来完成上述操作?

最佳答案

您可以使用类似于以下的查询提取所需的数据:

SELECT SUBSTRING_INDEX( ip, '.', 3), COUNT(*)  
FROM ipadd
GROUP BY SUBSTRING_INDEX( ip, '.', 3)
HAVING COUNT(*) > 1

假设表结构为以下行

create table ipadd(id INT, ip VARCHAR(15));

您可以看到它的实际效果 here

关于mysql - 如何在MySQL中查找相似的IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63131999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com