【CounterizeII】特定のIPアドレスのカウンタを消す

設定をミスると自分のIPアドレスがいっぱいカウントしてしまうので
消す方法。

SET @IP:='PCのIPアドレス';
SET @MD5IP:=md5(@IP);
SET @MD5IP16:=SUBSTRING(@MD5IP,2,16);
SELECT @BEFORE_COUNT0:=count(*) FROM wp_Counterize  WHERE IP = @MD5IP16;
SET @BEFORE_COUNT:=@BEFORE_COUNT0;
DELETE FROM wp_Counterize WHERE IP = @MD5IP16 AND @BEFORE_COUNT>0;
SELECT @AFTER_COUNT0:=count(*) FROM wp_Counterize  WHERE IP = @MD5IP16;
SET @AFTER_COUNT:=@AFTER_COUNT0;
SELECT @IP AS IP, @MD5IP AS MD5IP, @MD5IP16 AS MD5IP16, @BEFORE_COUNT AS BEFORE_COUNT , @AFTER_COUNT AS AFTER_COUNT

 
これでBEFORE_COUNTが0件なら問題なし。
SUBSTRING(@MD5IP,2,3);としてみると、3文字でてくるので
SUBSTRING(@MD5IP,2,16);の部分は、2文字目から16文字分切り出す。
多分MYSQLじゃなくてもいけるハズ。
いちいち

SELECT @BEFORE_COUNT0:=count(*) FROM wp_Counterize  WHERE IP = @MD5IP16;
 SET @BEFORE_COUNT:=@BEFORE_COUNT0;

と、SELECT で設定した変数を SET で別の変数を設定しているのは、
phpMyAdminで実行すると、SELECT文が何度か実行してしまうらしく、

SELECT @BEFORE_COUNT0:=count(*) FROM wp_Counterize  WHERE IP = @MD5IP16;

の@BEFORE_COUNT0に0が入ってしまい、最後のSELECTで、
BEFORE_COUNT:0、AFTER_COUNT:0 になってしまうから




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA