所以我有一个名为 users 的表的数据库.. 在该表中有一个名为 IP 的列,我想找到具有相同 IP 的用户并禁止他们.. 那么如何搜索 IP 的数据库是相同的呢?
问问题
2309 次
3 回答
2
您应该通过查询来利用组。我写的一个旧博客是Understanding group bys
但基本上这应该有效:
select distinct ip, count(id) from users group by IP having count(id) > 1
这将返回计数大于 1 的所有 IP 地址
于 2012-09-16T02:03:24.373 回答
0
运行 SQL 语句并替换您要搜索的 IP 地址:
SELECT * FROM users WHERE IP = '172.0.0.1'
于 2012-09-16T01:54:51.330 回答
0
您可以通过以下方式开始:
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 地址。您可能必须想出一种方法来决定保留哪个帐户以及删除哪个帐户,但这应该会给您一个开始。
于 2012-09-16T02:01:49.173 回答