MySQL:在while循环中获取游标
我想知道当循环在做什么时,MySQL:在while循环中获取游标,mysql,Mysql,我想知道当循环在做什么时,是什么。假设我有下表 Person | num ------------ A | 10 B | 7 C | 3 然后我做下面的事情,嵌套的循环在做什么 DECLARE done INT DEFAULT 0; DECLARE cur CURSOR FOR SELECT num FROM num_file; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000
是什么。假设我有下表
Person | num
------------
A | 10
B | 7
C | 3
然后我做下面的事情,嵌套的循环在做什么
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; 首先,您声明了一个默认值为0的变量done
用于在num\u文件
表的num
列中的值上循环的光标
当获取游标中的所有行时,将设置done=1的处理程序(如果再次尝试从该游标获取行,Mysql将返回错误代码02000)
然后光标被打开。现在它包含值为num
column的行
while循环将一直执行,直到done设置为1。也就是说,直到所有行都被提取
在while循环中,计算num
列的后续值之间的差值,并将其存储在变量temp
中。首先,您声明了一个默认值为0的变量done
用于在num\u文件
表的num
列中的值上循环的光标
当获取游标中的所有行时,将设置done=1的处理程序(如果再次尝试从该游标获取行,Mysql将返回错误代码02000)
然后光标被打开。现在它包含值为num
column的行
while循环将一直执行,直到done设置为1。也就是说,直到所有行都被提取
在while循环中,计算num
列的后续值之间的差值,并将其存储在变量temp
中。如果
,则有一个额外的结束。使用temp
,您没有做任何有意义的事情。听起来你很困惑。你在问它在做什么,我在说(从我的角度)你有一个错误的额外端,如果是的话,谈论不会运行的代码有什么意义?抱歉,修正了。好吧,你刚才删除了一条评论,所以看起来我是在自言自语。你是在问你的代码在做什么,或者如何做一件特定的事情。我只想知道代码在做什么。如果
,你还有一个额外的结尾。使用temp
,您没有做任何有意义的事情。听起来你很困惑。你在问它在做什么,我在说(从我的角度)你有一个错误的额外端,如果是的话,谈论不会运行的代码有什么意义?抱歉,修正了。好吧,你刚才删除了一条评论,所以看起来我是在自言自语。你是在问你的代码在做什么,或者如何做一件特定的事情。我只是想知道代码在做什么。