0

だから私はユーザーと呼ばれるテーブルを持つデータベースを持っています..そしてそのテーブルにはIPという名前の列があり、同じIPを持つユーザーを見つけて禁止したい..では、IPのデータベースを検索するにはどうすれば同じですか?

4

3 に答える 3

2

group by クエリを活用する必要があります。私が書いた古いブログはGroup by を理解する

しかし、基本的にこれはうまくいくはずです:

select distinct ip, count(id) from users group by IP having count(id) > 1

これにより、カウントが 1 を超えるすべての IP アドレスが返されます。

于 2012-09-16T02:03:24.373 に答える
0

SQL ステートメントを実行し、検索する IP アドレスを置き換えます。

SELECT * FROM users WHERE IP = '172.0.0.1'
于 2012-09-16T01:54:51.330 に答える
0

次の方法で開始できます。

SELECT count(id) FROM tablename
GROUP BY IP

次に、それらの結果をテーブルに結合して、重複に関する情報を取得します

したがって、最初のステートメントを次のように変更します: SELECT count(id) as number, IP FROM tablename

それで

   SELECT a.id, a.name FROM tablename a
   JOIN (
        SELECT count(id) as number, IP FROM tablename
    ) b ON a.IP = b.IP
    WHERE number > 1

これにより、データベース内のすべての重複 IP アドレスが得られます。どのアカウントを保持し、どのアカウントを削除するかを決定する方法を考え出す必要があるかもしれませんが、これが出発点になるはずです。

于 2012-09-16T02:01:49.173 に答える