2011-03-17 77 views
1

我已将所有用户的IP保存在MYSQL中。我如何选择使用同一个IP注册两次或更多次的用户?选择重复行

我知道MySQL中的DISTINCT函数是用来选择唯一行的,我的情况呢?任何函数或我只是运行循环?

谢谢。

+0

当你说用户你的意思*同*用户*同* IP,或者干脆IPS对此有几个记录? – Unreason 2011-03-17 13:54:08

+0

如果我错了,请更正我的错误,但可能拥有具有相同IP地址的唯一用户。特别是随着时间。 – horatio 2011-03-17 14:39:38

回答

1
SELECT ip FROM table GROUP BY ip HAVING COUNT(users)>1 
+0

2件事:COUNT(2)> = 2 * AND *在那里必须有一个组,否则返回一个随机行 - 请参阅http://dev.mysql.com/doc/refman/5.0/en/group-by -hidden-columns.html – Unreason 2011-03-17 13:02:25

+0

是的,我意识到,在我发布之后,我想我在看到您的评论之前更新了我的答案。谢谢。 – dmcnelis 2011-03-17 13:49:30

+0

除非你确切地知道你在做什么,否则永远不要'计算'不是'*'的东西。如果列上不是NOT NULL,那么COUNT会产生不同的结果。 – NikiC 2011-03-17 13:53:52

1
SELECT userid, ip 
FROM users 
GROUP BY userid, ip 
HAVING COUNT(userid) > 1; 
3
SELECT count(*) cnt, name 
FROM `users` 
GROUP BY ip 
HAVING cnt >1 
+0

OP对我们其中一个人的澄清是错误的:D另外一个评论:由于dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html选择“name”是非确定性的,这对我来说是无用的......在这里你可能实际上做了'group_concat(name)' – Unreason 2011-03-17 13:57:41