1. 程式人生 > >4.儲存過程條件語句

4.儲存過程條件語句

來源:網易雲課堂《精通MySQL儲存過程、函式和觸發器》課程

講師:huangxifeng607(黃錫峰)

筆記:

(1)儲存過程的條件語句

需求:編寫一個儲存過程,如果使用者uid是偶數則給出uname,否則就給出uid

delimiter $$
create procedure testa(IN my_uid int)
begin
declare my_uname varchar(32) default '';
  if(my_uid%2=0)
  then
    select uname into my_uname from users where uid=my_uid;
    select my_uname;
  else
    select my_uid;
  end if;
end;
$$
delimiter ;

1.條件語句最基本的結果:if() then ...else ...end if;

2.if判斷返回邏輯真或者假,表示式可以是任意返回真或者假的表示式

(2)儲存過程的條件語句應用示例

需求:根據使用者傳入的uid引數判斷

1.如果使用者狀態status為1,則給使用者score加10分

2.如果使用者狀態status為2,則給使用者score加20

3.其它情況加30分

delimiter $$
create procedure addscore(IN my_uid int)
begin
declare my_status int default 0;
select status into my_status from users where uid=my_uid;

  if(my_status =1)
  then
    update users set score=score+10 where uid=my_uid;
  else if(my_status =2)
  then
    update users set score=score+20 where uid=my_uid;
  else
    update users set score=score+30 where uid=my_uid;
  end if;
end;
$$
delimiter ;

(3)小結

1.條件語句基本結構:if() then ...else ...end if;

2.多條件判斷結構:

if()

then

    ...

else if()

then

    ...

else

    ...

end if