我想知道while
循环在做什么。假设我有下表。
Person | num
------------
A | 10
B | 7
C | 3
然后我做了以下操作,嵌套的while
循环是做什么的?
DECLARE done INT DEFAULT 0;
DECLARE cur CURSOR FOR
SELECT num FROM num_file;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
SET done = 1;
OPEN cur;
FETCH cur INTO first_val;
WHILE NOT done DO
FETCH cur INTO second_val;
IF NOT done THEN
SET temp = second_val - first_val;
SET first_val = second_val;
END IF;
END WHILE;
CLOSE cur;
更新:是否取了每个数字之间的差额?例如:10-7;7-3;
发布于 2016-10-27 12:48:09
首先,您已经声明了一个默认值为0的变量done
。
用于循环num_file
表中的num_file
列中的值的游标。
当获取游标中的所有行时,将设置done=1的处理程序(如果再次尝试从游标中提取一行,Mysql将返回错误代码02000 )。
然后打开光标。现在它包含具有num
列值的行。
will循环将被执行,直到完成,被设置为1,也就是说,直到所有行都被获取。
在while循环中,计算num
列后续值之间的差异,并将其存储在变量temp
中。
https://stackoverflow.com/questions/40272993
复制相似问题