从一表中查询出一列数据,根据这一列数据来从另外一表中进行 判断修改等操作
BEGIN
DECLARE done tinyint default 0;
DECLARE uid int(11);
DECLARE cs CURSOR FOR SELECT userId FROM tbuser_red_envelope_award_log WHERE fromActiveId="1454136362";
DECLARE continue handler for sqlstate '02000' set done=1;
open cs;
while done<>1 do
fetch cs into uid;
SELECT giftNum into @giftNum FROM tbuser_red_envelope_award_log WHERE userId=uid AND gifttemplateId=101;
IF EXISTS(SELECT id FROM tbuser_bag WHERE awardNum>=@giftNum AND userId=uid AND gifttemplateId=101)THEN
UPDATE tbuser_bag SET awardNum=awardNum-@giftNum WHERE awardNum>=@giftNum AND userId=uid AND gifttemplateId=101;
END IF;
IF EXISTS(SELECT id FROM tbuser_bag_exchange WHERE userId=uid AND excNum>=@giftNum-5 AND addTime>"2016-01-30 18:00:00")THEN
UPDATE tbuser_bag_exchange SET excNum=excNum-@giftNum,excTotalScore=excTotalScore-@giftNum WHERE userId=uid AND excNum>=@giftNum-5 AND addTime>"2016-01-30 18:00:00";
END IF;
DELETE FROM tbuser_bag_exchange WHERE excNum<=0 AND addTime>"2016-01-30 18:00:00";
end while;
close cs;
END