交谈中请勿轻信汇款、中奖消息,勿轻易拨打陌生电话。
似水流年 2007-11-16 20:49:04
DELIMITER $$
DROP PROCEDURE IF EXISTS `mztest`.`proc_test1`$$
CREATE PROCEDURE `mztest`.`proc_test1` ()
BEGIN
DECLARE a int(11);
DECLARE b INT;
DECLARE days int(11);
DECLARE date int(11);
DECLARE cur_1 CURSOR FOR Select aid from tmp_table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b = 1;
CREATE TEMPORARY TABLE tmp_table (
uid int(10) NOT NULL,
username varchar(30) NOT NULL,
aid int(10) unsigned NOT NULL,
title varchar(80) NOT NULL,
pubdate int(11) NOT NULL default 0,
maxpage int(4),
click int(11) unsigned NOT NULL default 0
)TYPE=HEAP DEFAULT CHARSET=gbk;
SET days=ABS(DATEDIFF(FROM_UNIXTIME("1190563200","%Y-%m-%d %H:%i:%s"),FROM_UNIXTIME("1195142399","%Y-%m-%d %H:%i:%s")));
SET date=1190563200;
insert into tmp_table Select b1.ID as uid,b1.userid,a1.ID as aid,a1.title,a1.pubdate,a1.maxpage,a1.click From archives a1,
user b1 Where a1.adminid=b1.ID And a1.click >= 100 ;
WHILE days > 0 DO
SET b=2;
OPEN cur_1;
REPEAT
FETCH cur_1 INTO a;
IF b=2 THEN
insert into editor_record(uid,username,aid,title,pubdate,maxpage,click,union_ip,time) select t.uid,t.username,c.aid,t.title,t.pubdate,t.maxpage,t.click,sum(cnt) as union_ip,date from (select access.aid,access.time,count(distinct(FROM_UNIXTIME(time,'%Y-%m-%d'))) as cnt from `access` where aid =a And time >= date And time <= (date+86399) group by ipaddress) c,tmp_table t where c.aid=t.aid and t.uid =1 group by c.aid;
END IF;
UNTIL b = 1
END REPEAT;
CLOSE cur_1;
SET date=date+86400;
SET days = days-1;
END WHILE;
END;$$
DELIMITER ;