BEGIN
declare stmt varchar(2000);
declare num int;
set @sqlstr=concat('select count(*) into @count from MaKe_KeyClick Where datediff(Dt,NOW())<1 and Types=''',Types,''' and CId=''',CId,''' and `Keys`=','"',`Keys`,'" and Md5="',Md5,'"');
prepare stmt from @sqlstr;
execute stmt;
set num = @count;
if num > 0 then
begin
set @sqlstr=concat('update MaKe_KeyClick set SumClick=SumClick+1,Md5=Md5 Where datediff(Dt,NOW())<1 and Types=',Types,' and CId=',CId,' and `Keys`=','"',`Keys`,'" and Md5="',Md5,'"');
end;
else
begin
set @sqlstr=concat('insert into MaKe_KeyClick (CId,`Keys`,Md5,SumClick,Types,Dt) values (','''',CId,'''',',','"',`Keys`,'"',',','"',Md5,'"',',','''',SumClick,'''',',','''',Types,'''',',','STR_TO_DATE(','"',`day`,'"',',''%Y-%m-%d %H:%i:%s''))');
end;
end if;
prepare stmt from @sqlstr;
execute stmt;
END
参数设置 in CId int, in `Keys` varchar(64), in Md5 varchar(32), in SumClick int, in Types int, in `day` varchar(200)
函数名称 自定义为 CheckQ(参数...)
测试参数:6,"bb","1q2w3e4r",1,2,"2014-04-04 16:00:00"
对于不经常用Mysql 存储过程的人来说,这真是麻烦啊,SQL Server存储过程比Mysql要成熟很多!Mysql 存储过程 难用难用!!!