[轉]mysql 控制语句(if,loop ,leave,iterate,while)

我们先来介绍一下 oracle 的控制语句吧
 

if else elsif while for loop

而在mysql中的控制语句是:

 

if else elseif while loop repeat leave iterate

 

下面通过例子说明:

  

delimiter //
create procedure pro
begin
 declare @a int default 5;
 if @a>2 then
   select @a;
 elseif @a<5 then
  select 2;
 end if;
end
//

 

下面是 loop的使用

   loop的使用 要结合leave 和 iterate

   看到名字 都已经大概 猜测到了 意思

  leave 就是离开退出循环 而 iterate就是 继续迭代

 

delimiter //
create procedure pro
begin
 declare a int default 1;
 label1: loop
    if a<6 then
     select a;
     set a=a+1;
  iterate label1;
    end if;
    leave label1;
   end loop label1;
end
//

下面一个就是 repeat拉

 

delimiter //
create procedure pro
begin
  declare a int default 3;
  repeat
   select a;
   set a=a+1;
  untile a>5 end repeat;
end
//

 

最后一个就是while语句啦

     

delimiter //
create procedure pro
begin
 declare a int default 4;
 while a<10 do
   select a;
   set a=a+1;
 end while;
end
//

 

从上面我给出的例子 可以看出来 和oracle的区别 还是很大的

 赋值是通过 set 而不是通过:=  声明变量是通过declare来在BEGIN块中来声明的

 

oracle中有for 并且 大部分都是用的loop语句

  for i in 1..5

      loop

       语句

end loop;

  while a>5

    loop

 end loop;

 

loop

   exit when();

 end loop

posted @ 2011-07-28 11:44  Athrun  阅读(726)  评论(0编辑  收藏  举报