mysql存储过程中如何使用自定义变量来对表进行批量更新?

lengmianshi 发布于 2017/01/15 21:41
阅读 489
收藏 0

如下例子,我想将user表中u_username字段值为1003的记录依次递增,请问如何写?

BEGIN
    DECLARE j INT DEFAULT 0;
    DECLARE i INT DEFAULT 1;

    SELECT (COUNT(*)) INTO j FROM user WHERE u_username=1003;
    WHILE j>0
    DO
        UPDATE user SET u_username=1002+i WHERE u_username =1003;
        SET i= i+1;
        SET j=j-1;
    END WHILE;
END$$


加载中
0
七月流夏

就光这样子更新肯定不行的。你可以借助这张表的主键id。比如说myname为主键 你每次都

update a_user set u_username=1002 where myname>=(select max(myname) from a_user)

更新U_uaername=1003中主键最大或者最小的那个 就可以了

返回顶部
顶部