加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2021-05-22 14:42:35 所属栏目:MySql教程 来源:网络整理
导读:我有一个包含用户名和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,这是我目前无法改变的. 目前我正在使用

我有一个包含用户名和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

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读