設定をミスると自分の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 になってしまうから