2013-01-09 37 views
0

我想知道是否有任何行共享ip。 我發現瞭如何做到這一點通過使用在MySQL數據庫中找到兩個相似的文件

SELECT * FROM people其中IP IN(選擇IP FROM people GROUP BY IP HAVING COUNT(IP> 1)ORDER BY名

,並從該數據庫

約翰123.456.78.90
鮑勃123.456.78.90
埃裏克123.456.78.90

約翰123.456.78.90
埃裏克123.456.78.90

但在數據庫端口一些改變後添加到IP的(不要問我爲什麼)
所以現在的數據庫看起來是這樣的:

約翰123.456.78.90:1337
鮑勃123.456.78.90:4242
埃裏克123.456.78.90:9001

我發現我可以做這個

SUBSTRING_INDEX(IP冒號後刪除一切, ':',1 )

我不知道如何刪除冒號後面的所有內容,然後看看是否有人有相同的ip
任何方式來混合這兩個查詢?

回答

1

可以使用SUBSTRING_INDEX功能分組,例如:

SELECT * FROM people 
WHERE SUBSTRING_INDEX(ip, ':', 1) IN (SELECT SUBSTRING_INDEX(ip, ':', 1) FROM people GROUP BY SUBSTRING_INDEX(ip, ':', 1) HAVING COUNT(ip > 1) 
ORDER BY name 
+0

如果我使用這將輸出的所有3:/ – user1964248

+0

所有三個新的數據庫中的行具有相同的IP。不應該查詢輸出全部3? – wless1

相關問題