2012-02-08 56 views
0

我有mysql數據庫與表用戶。在用戶有列:
id , username , password , ipPHP - MySQL,排序克隆

我的管理面板,我需要證明有相同IP的用戶,像

用戶1→用戶2

Nick1→Nick2

這等

我該怎麼辦與php.Thanks,這是緊急的。謝謝。

+0

近日,幾乎是同一個問題的http://計算器。 com/q/9197999/1164491 – Cheery 2012-02-08 21:46:23

回答

1

這是你的SQL查詢。

SELECT username, list.ip FROM users 
INNER JOIN (SELECT ip FROM users 
GROUP BY ip HAVING count(id) > 1) dup ON list.ip = dup.ip 

對於使用PHP:

$sql = "SELECT username, list.ip FROM users 
INNER JOIN (SELECT ip FROM users 
GROUP BY ip HAVING count(id) > 1) dup ON list.ip = dup.ip"; 

$result = mysql_query($sql,$con); 

while($row = mysql_fetch_array($result)) 
{ 
    echo $row['username']; 
} 

UPDATE:

試試這個查詢,而不是:

$sql = "SELECT username FROM users WHERE ip in 
(SELECT username FROM users GROUP BY ip HAVING count(ip) > 1)"; 
+0

爲你的答案而煩惱,但爲什麼使用list.ip和dup.ip?謝謝。 – harisdev 2012-02-08 20:37:23

+0

派生表/連接沒有意義。一個簡單的'select ... group ... by ... ...'本來就可以完成這項工作,而且沒有連接開銷。 – 2012-02-08 20:40:57

+0

好吧,我現在明白了,但它顯示我所有的用戶..? – harisdev 2012-02-08 20:50:28

0
select users 
from users_table 
where ip ='thisIp' 
+0

如果我有400個用戶,該怎麼辦? – harisdev 2012-02-08 20:26:11

0

讓您的重複的IP是這樣的名單, SELECT COUNT(*) as acount, ip FROM users GROUP BY ip HAVING acount > 1 然後利用這些結果,得到相匹配的所有帳戶的IP的