mysql for_mysql 实现循环

在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。

这几个循环语句的格式如下:

WHILE……DO……END WHILE

REPEAT……UNTIL END REPEAT

LOOP……END LOOP

GOTO。

下面首先使用第一种循环编写一个例子。

mysql> create procedure pro10()

-> begin

-> declare i int;

-> set i=0;

-> while i<5 do

-> insert into t1(filed) values(i);

-> set i=i+1;

-> end while;

-> end;//

Query OK, 0 rows affected (0.00 sec)

在这个例子中,INSERT和SET语句在WHILE和END WHILE之间,当变量i大于等于5的时候就退出循环。使用set i=0;语句是为了防止一个常见的错误,如果没有初始化,i默认变量值为NULL,而NULL和任何值操作的结果都是NULL。

执行一下这个存储过程并产看一下执行结果:

mysql> delete from t1//

Query OK, 0 rows affected (0.00 sec)

mysql> call pro10(

在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。 这几个循环语句的格式如下: WHILE……DO……END WHILE REPEAT……UNTIL END REPEAT LOOP……END LOOP GOTO。 下面首先使用第一种循环编写一个例子。 mysql> create procedure pro10() -> begin -> declare i int; -> set i=0; -> while i<5 do -> insert into t1(filed) values(i); -> set i=i+1; -> end while; -> end;// Query OK, 0 rows affected (0.00 sec) 在这个例子中,INSERT和SET语句在WHILE和END WHILE之间,当变量i大于等于5的时候就退出循环。使用set i=0;语句是为了防止一个常见的错误,如果没有初始化,i默认变量值为NULL,而NULL和任何值操作的结果都是NULL。 执行一下这个存储过程并产看一下执行结果: mysql> delete from t1// Query OK, 0 rows affected (0.00 sec) mysql> call pro10(
经验分享 程序员 微信小程序 职场和发展