存储过程的条件语句
需求:编写存储过程,如果用户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判断返回逻辑真或者假,表达式可以是任意返回真或者假的表达式
需求:根据用户传入的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; elseif(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 ;
1.条件语句基本结构:if() then …else…end if;
2.多条件判断结构:
if()
then
…
elseif()
then
….
else
…
end if