开发MySQL存储过程时,经常需要写循环逻辑;MySQL中支持三种循环分别是WHILE循环,REPEAT循环以及LOOP循环。
循环语句的格式如下:
WHILE……DO……END WHILEREPEAT……UNTIL END REPEATLOOP……END LOOP
[begin_label:] WHILE search_condition DO statement_listEND WHILE [end_label]
WHILE 只要search_condition表达式为真,就会重复执行statement_list语句。 statement_list由一个或多个SQL语句组成,每个语句以分号(;)隔开。
sql执行存储过程、实例:
# 1.创建存储过程delimiter //CREATE PROCEDURE dowhile()BEGIN DECLARE v1 INT DEFAULT 5; WHILE v1 > 0 DO select v1; SET v1 = v1 - 1; END WHILE;END;//# 2.调用存储过程 call dowhile();
[begin_label:] REPEAT statement_listUNTIL search_conditionEND REPEAT [end_label]
REPEAT语句当search_condition结果为真时终止。REPEAT语句至少执行一次statement_list。
实例:
# 1.创建存储过程delimiter //CREATE PROCEDURE dorepeat(p1 INT)BEGIN SET @x = 0; REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;END//# 2.调用存储过程 CALL dorepeat(1000);SELECT @x;
[begin_label:] LOOP statement_listEND LOOP [end_label]
LOOP语句实现了一个简单的循环结构,通常通过LEAVE语句来完成退出循环。
mysql循环游标。实例:
# 1.创建存储过程delimiter //drop procedure if exists doiterate;CREATE PROCEDURE doiterate(p1 INT)BEGIN label1: LOOP SET p1 = p1 + 1; select p1; IF p1 = 10 THEN LEAVE label1; END IF; END LOOP label1; SET @x = p1;END;//# 2.调用存储过程 call doiterate(5);select @x;
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态