2011-03-17 222 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