MYSQL游标使用
2015-07-28 14:46
597 查看
CREATE PROCEDURE `sp_UpdateData`() BEGIN DECLARE v_card_id VARCHAR(50); /*修改会员卡的几个金额*/ DECLARE done INT DEFAULT FALSE; DECLARE cur CURSOR FOR SELECT main.card_id FROM mem_card main INNER JOIN mem_card_extend b ON main.card_id=b.card_id WHERE main.status_code=1 AND b.status_code=1 AND main.sale_status=2 GROUP BY main.card_id; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; read_loop: LOOP FETCH cur INTO v_card_id; IF done THEN LEAVE read_loop; END IF; UPDATE mem_card_extend a SET total_fill_self_money=IFNULL((SELECT SUM(adjust_money) FROM mem_card_money_flow f WHERE (money_operate_type=2 OR money_operate_type=4) AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计充值本金 UPDATE mem_card_extend a SET total_fill_give_money=IFNULL((SELECT SUM(adjust_give_money) FROM mem_card_money_flow f WHERE money_operate_type=4 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计充值赠送 UPDATE mem_card_extend a SET total_adjust_self_money=IFNULL((SELECT SUM(adjust_money) FROM mem_card_money_flow f WHERE money_operate_type=3 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计调整本金 UPDATE mem_card_extend a SET total_adjust_give_money=IFNULL((SELECT SUM(adjust_give_money) FROM mem_card_money_flow f WHERE money_operate_type=3 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计调整赠送 UPDATE mem_card_extend a SET total_score_fill_self_money=IFNULL((SELECT SUM(adjust_money) FROM mem_card_money_flow f WHERE money_operate_type=5 AND status_code=1 AND f.card_id=v_card_id),0) WHERE a.card_id=v_card_id; -- 累计积分兑换本金 UPDATE mem_card_extend a SET total_score_fill_give_money=IFNULL((SELECT SUM(adjust_give_money) FROM mem_card_money_flow f WHERE money_operate_type=5 AND status_code=1 AND f.card_id=v_card_id ),0) WHERE a.card_id=v_card_id; -- 累计积分兑换赠送 END LOOP; CLOSE cur; END$$
相关文章推荐
- mysql中FIND_IN_SET的使用方法
- Mysql 自动备份与恢复
- mysql 数据库参数配置
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- mysql变量使用总结
- [转]Mysql 存储过程和函数区别
- MYSQL用户相关操作
- window下安装mysql后修改root账号的密码
- mysql命令
- Mysql错误及处理总结
- mysql 命令行脚本导入导出
- 源码编译MySQL5.6.24
- mysql数据库中的索引有那些、有什么用
- mysql创建索引
- mysql出现Unknown or incorrect time zone: 'NULL'
- mysql 慢查询
- mysql全量日志
- 重置root密码
- 查看mysql正在执行的SQL语句,使用profile分析SQL执行状态
- mysql模糊查找:一个表T2的某列数据,作为另一个表T1查找条件进行模糊查找