mysql – 选择类似的IP地址 – 忽略最后3位数

前端之家收集整理的这篇文章主要介绍了mysql – 选择类似的IP地址 – 忽略最后3位数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个包含用户名和IP的表.
我需要获得具有类似IP -ignore最后3或2或1位数的用户列表 –

例:
将190.200.210.180和190.200.210.60计为相同的IP.
将205.50.4.30和205.50.4.197计为相同的IP.

IP的字段类型设置为varchar,这是我目前无法改变的.

目前我正在使用:

SELECT GROUP_CONCAT( username ) names,IPs,COUNT( IPs ) AS Instances 
FROM users
GROUP BY IPs
HAVING (COUNT(IPs) >1)
ORDER BY  `Instances ` DESC 

获得具有相同IP的用户.

是否可以将IP字段设置为varchar,以使select语句对具有相似ips的用户进行分组?

预先感谢您的帮助.

最佳答案
试试这个:

SELECT 
    GROUP_CONCAT(username) AS names,SUBSTRING_INDEX(IPs,'.',3) AS IPs
    COUNT(*) AS Instances 
FROM
    users
GROUP BY 
    SUBSTRING_INDEX(IPs,3)
HAVING
    COUNT(*) > 1
ORDER BY
    Instances DESC
原文链接:https://www.f2er.com/mysql/433431.html

猜你在找的MySQL相关文章