0

MySQLを使用して、ユーザーがログインするときに使用するIPアドレスをログに記録する簡単なテーブルがあります。

TableIPLog
------------
ColumnID (primary key)
ColumnUserID (the ID of the user)
ColumnIP (the IP address the user used to login)

IPアドレスを共有しているユーザーを見つけるクエリが欲しいです!

明確にするために、IPアドレスが複数のメンバーによって使用された行のみをクエリに表示したいと思います。

私は困惑しています。

4

3 に答える 3

1

このルートを使用することもできます。これはSQL-Server用ですが、mysqlに相当するものがあると確信しています。

select ColumnIP, count(*)
from TableIPLog
group by ColumnIP
having count(*) > 1

次に、それらのIPを使用して、それらに関連付けられているユーザー名を検索できます...

編集:これについて考えると、ログの実装によっては機能しない場合がありますが、ログを機能させるためにいじくり回す必要はありません...おそらくexists句を使用します...

于 2012-06-14T19:58:41.657 に答える
1
SELECT a.id,a.userid,a.ip 
FROM ip_log a inner join ip_log b 
ON a.userid<>b.userid and a.ip=b.ip;

これにより、すべてのユーザーIDとIPが同じIPで異なるユーザーIDで一覧表示されます。

于 2012-06-15T02:14:36.423 に答える
0

このようにIPを保存することをお勧めします(このリンクを確認してください):

mysql> SELECT INET_ATON('192.168.0.10') AS ipn;
+------------+
| ipn        |
+------------+
| 3232235530 |
+------------+

mysql> SELECT INET_NTOA(3232235530) AS ipa;
+--------------+
| ipa          |
+--------------+
| 192.168.0.10 |
+--------------+

検索を行うには、次のようにする必要があります。

select INET_NTOA(columnIp), count(*) from tableIPLOG group by columnIp having count(*)>1
于 2012-06-14T20:03:56.287 に答える