-1

これが私のアカウント禁止プロセスの次のステップです。最初の質問は次のとおりでした。

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

そして答えは

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

count(id) > 1 を持つ IP ごとのユーザー グループから、個別の IP、count(id) を選択します。これにより、カウントが 1 を超えるすべての IP アドレスが返されます。

そして、IPのリストができたので、次のようにステートメントを拡張する方法があるかどうかを確認したいと思います。

if IP is greater than 1 UPDATE WHERE IP > 1 SET banned TO '1'`  
4

1 に答える 1

0

クエリを実行している現在のテーブルを更新/編集することはできません。または、一時データを一時テーブルに保存して、そのテーブルを使用することもできます。ここで、dst_tbl は一時テーブルです。

CREATE TABLE dst_tbl select distinct ip, count(id) from users group by IP having count(id) > 1;
update users set banned =1 where ip in ( select ip from dst_tbl);

これはほんの一例ですが。プロキシ接続 (大学) を介して接続するユーザーは、同じパブリック IP を持ちます。これを元のコードに実装しないでください。

于 2013-04-27T00:57:08.320 に答える