我已将所有用户的IP保存在MYSQL中。我如何选择使用同一个IP注册两次或更多次的用户?选择重复行
我知道MySQL中的DISTINCT函数是用来选择唯一行的,我的情况呢?任何函数或我只是运行循环?
谢谢。
我已将所有用户的IP保存在MYSQL中。我如何选择使用同一个IP注册两次或更多次的用户?选择重复行
我知道MySQL中的DISTINCT函数是用来选择唯一行的,我的情况呢?任何函数或我只是运行循环?
谢谢。
SELECT ip FROM table GROUP BY ip HAVING COUNT(users)>1
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
是的,我意识到,在我发布之后,我想我在看到您的评论之前更新了我的答案。谢谢。 – dmcnelis 2011-03-17 13:49:30
除非你确切地知道你在做什么,否则永远不要'计算'不是'*'的东西。如果列上不是NOT NULL,那么COUNT会产生不同的结果。 – NikiC 2011-03-17 13:53:52
SELECT userid, ip
FROM users
GROUP BY userid, ip
HAVING COUNT(userid) > 1;
SELECT count(*) cnt, name
FROM `users`
GROUP BY ip
HAVING cnt >1
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
当你说用户你的意思*同*用户*同* IP,或者干脆IPS对此有几个记录? – Unreason 2011-03-17 13:54:08
如果我错了,请更正我的错误,但可能拥有具有相同IP地址的唯一用户。特别是随着时间。 – horatio 2011-03-17 14:39:38