MySQL的while循环
含义WHILE 语句也是有条件控制的循环语句,当满足条件时,执行循环内的语句,否则退出循环。它的基本语法格式如下:WHILE search_condition DOstatement listEND WHILE [end label]其中,search_condition 参数表示循环执行的条件,满足该条件时循环执行;statement_list 参数表示循环的执行语句。WHILE 循环需要使用
·
含义
WHILE 语句也是有条件控制的循环语句,当满足条件时,执行循环内的语句,否则退出循环。它的基本语法格式如下:
WHILE search_condition DO
statement list
END WHILE [end label]
其中,search_condition 参数表示循环执行的条件,满足该条件时循环执行;statement_list 参数表示循环的执行语句。WHILE 循环需要使用 END WHILE 来结束。
使用
whil循环的使用不能像在java中那样直接使用 ,需要结合Mysq中的流程控制语句来使用,
关键字是:procedure
举个例子:有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
CREATE PROCEDURE p()
BEGIN
SET @sum:=1024;
SET @num:=1024;
SET @i:=0;
WHILE @num>0 DO
SET @num:=@num/2-2;
SET @i:=@i+1;
END WHILE;
SELECT @i;
END@@
通过call p()进行查询,注意设置的结束语句修饰符
我们在这里用的是无参的方法,即p();同样也可以进行有参的写法:
首先介绍一下参数的传递:
create procedure p([in/out/inout]参数名 参数类型)
- in:该参数可以作为输入,也就是需要调用方法传入值,默认
- out:该参数可作为输出,即该参数可以作为返回值
- Inout:既可以作为输入参数,也可以作为输出参数
在举个例子:
从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 54321
CREATE PROCEDURE p1(IN num INT(11))
BEGIN
SET @sum:=num;
WHILE @sum>1 DO
SET @sum:=@sum-1;
SET num=num*@sum;
END WHILE;
SELECT num;
END@@
此时,我们可以通过
call p1(5)来完成对5的阶乘,
输出结果
删除存储过程:
sql语句:
drop procedure 存储过程名
更多推荐
已为社区贡献1条内容
所有评论(0)