【发布时间】:2012-09-08 18:12:46
【问题描述】:
所以我有一个名为 users 的表的数据库。在该表中有一个名为 IP 的列,我想找到具有相同 IP 的用户并禁止他们。那么如何在数据库中搜索 IP 是一样吗?
【问题讨论】:
标签: sql database search phpmyadmin
所以我有一个名为 users 的表的数据库。在该表中有一个名为 IP 的列,我想找到具有相同 IP 的用户并禁止他们。那么如何在数据库中搜索 IP 是一样吗?
【问题讨论】:
标签: sql database search phpmyadmin
您应该通过查询来利用组。我写的一个老博客是Understanding group bys
但基本上这应该可以工作:
select distinct ip, count(id) from users group by IP having count(id) > 1
这将返回计数> 1的所有IP地址
【讨论】:
运行 SQL 语句并替换您要搜索的 IP 地址:
SELECT * FROM users WHERE IP = '172.0.0.1'
【讨论】:
你可以从:
SELECT count(id) FROM tablename
GROUP BY IP
然后您只需将这些结果连接回表格即可获取有关重复项的信息
所以修改第一条语句: SELECT count(id) as number, IP FROM tablename
然后
SELECT a.id, a.name FROM tablename a
JOIN (
SELECT count(id) as number, IP FROM tablename
) b ON a.IP = b.IP
WHERE number > 1
这应该会为您提供数据库中所有重复的 IP 地址。您可能需要找到一种方法来决定保留哪个帐户以及删除哪个帐户,但这应该是您的一个开始。
【讨论】: