1. SELECT USER_ID FROM ua; 会返回USER_ID的列表
    USER_ID列表
    2.通过循环来逐条更新符合USER_ID的记录
# delimiter $$ 告诉解释器使用$$结尾
delimiter $$
DROP PROCEDURE IF EXISTS test_update;
create PROCEDURE test_update ()
begin
# 声明自定义变量
DECLARE tempUserId BIGINT(20);
# 声明游标结束变量
DECLARE done INT DEFAULT 0;
# 声明游标 cr 以及游标读取到结果集最后的处理方式
DECLARE cur CURSOR FOR SELECT USER_ID FROM ua;
DECLARE continue handler for not found set done = 1;
# 打开游标
OPEN cur;
  users_loop: LOOP
     # 获取游标中值并赋值给变量
     FETCH cur INTO tempUserId;
     # 判断游标是否到底,若到底则退出游标
     # 需要注意这个判断
     IF done=1 THEN
         LEAVE users_loop;
     END IF;
     # 需要执行的语句
     update tb_cpl_user_info set CHANNEL ='abc123' WHERE user_id = tempUserId;
  END LOOP users_loop;
-- 关闭游标
CLOSE cur;
end$$
# 最后重新定义为;
delimiter ;
# 执行存储过程
call test_update;
版权声明:本文为CSDN博主「mingchengtx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mingchengtx/article/details/118680193