MySQL循环语句之while循环测试
mysql操作同样有循环语句操作,网上说有3中标准的循环方式:while循环、loop循环和repeat循环。还有一种非标准的循环:goto。鉴于goto语句的跳跃性会造成使用的的思维混乱,所以不建议使用。
这几个循环语句的格式如下:
WHILE……DO……ENDWHILE
REPEAT……UNTILENDREPEAT
LOOP……ENDLOOP
GOTO。
目前我只测试了while循环:
delimiter$$//定义结束符为$$ dropprocedureifexistswk;//删除已有的存储过程 createprocedurewk()//创建新的存储过程 begin declareiint;//变量声明 seti=1; whilei<11do//循环体 insertintouser_profile(uid)values(i); seti=i+1; endwhile; end$$//结束定义语句 //调用 delimiter;//先把结束符回复为; callwk();
delimter:mysql默认的delimiter是;告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
这里使用delimiter重定义结束符的作用是:不让存储过程中的语句在定义的时候输出。
创建MySQL存储过程的简单语法为:
CREATEPROCEDURE存储过程名称([in|out|inout]参数) BEGIN Mysql语句 END
调用存储过程:
call存储过程名称()//名称后面要加()
<spanstyle="color:rgb(57,57,57);font-family:verdana,'mssong',Arial,Helvetica,sans-serif;font-size:14px;line-height:21px;background-color:rgb(250,247,239);">二、REPEAT循环</span>
<prename="code"class="html">delimiter// dropprocedureifexistslooppc; createprocedurelooppc() begin declareiint; seti=1; repeat insertintouser_profile_company(uid)values(i+1); seti=i+1; untili>=20 endrepeat; end// ----调用 calllooppc()
三、LOOP循环
delimiter$$ dropprocedureifexistslopp; createprocedurelopp() begin declareiint; seti=1; lp1:LOOP//lp1为循环体名称LOOP为关键字insertintouser_profile(uid)values(i); seti=i+1; ifi>30then leavelp1;//离开循环体 endif; endLOOP;//结束循环 end$$