最近遇到这样的问题,在MySQL的存储过程中,游标操作时,需要执行一个conitnue的操作.众所周知,MySQL中的游标循环操作常用的有三种,LOOP,REPEAT,WHILE.三种循环,方式大同小异.以前从没用过,所以记下来,方便以后查阅.
1.REPEAT
REPEAT Statements; UNTIL expression END REPEAT demo DECLARE num INT; DECLARE my_string VARCHAR(255); REPEAT SET my_string =CONCAT(my_string,num,','); SET num = num +1; UNTIL num <5 END REPEAT;
2.WHILE
WHILE expression DO Statements; END WHILE demo DECLARE num INT; DECLARE my_string VARCHAR(255); SET num =1; SET str =''; WHILE num < span>10DO SET my_string =CONCAT(my_string,num,','); SET num = num +1; END WHILE;
3.LOOP(这里面有非常重要的ITERATE,LEAVE)
DECLARE num INT; DECLARE str VARCHAR(255); SET num =1; SET my_string =''; loop_label: LOOP IF num <10THEN LEAVE loop_label; ENDIF; SET num = num +1; IF(num mod3)THEN ITERATE loop_label; ELSE SET my_string =CONCAT(my_string,num,','); ENDIF; END LOOP;
PS:可以这样理解ITERATE就是我们程序中常用的contiune,而ITERATE就是break.当然在MySQL存储过程,需要循环结构有个名称,其他都是一样的.
官方的文档-->http://dev.mysql.com/doc/refman/5.0/en/loop.html
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#niaoge.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。