MySQL IF ELSEIF ELSE基于多个表达式执行语句。其语法如下-IFexpressionTHEN
statements;
ELSEIFelseif-expressionTHEN
elseif-statements;
…………
ELSE
else-statements;
ENDIF;
语句必须以分号结尾。
为了演示IF ELSEIF ELSE语句在MySQL存储过程中的使用,我们基于以下名为“ student_info”的表的值创建以下存储过程-mysql>Select*fromstudent_info;
+------+---------+------------+------------+
|id|Name|Address|Subject|
+------+---------+------------+------------+
|101|YashPal|Amritsar|History|
|105|Gaurav|Jaipur|Literature|
|125|Raman|Shimla|Computers|
+------+---------+------------+------------+
3rowsinset(0.00sec)
以下查询将创建一个名为“ coursedetails_IF_ELSEIF”的过程,该过程中包含IF ELSEIF ELSE语句-mysql>DELIMITER//;
mysql>CREATEPROCEDUREcoursedetails_IF_ELSEIF(INS_SubjectVarchar(20),OUTS_Coursevarchar(20))
->BEGIN
->DECLARESubVarchar(20);
->SELECTSubjectINTOSUB
->FROMStudent_infoWHERES_Subject=Subject;
->IFSub='Computers'THEN
->SETS_Course='B.Tech(CSE)';
->ELSEIFSub='History'THEN
->SETS_Course='MastersinHistory';
->ELSEIFSub='Literature'THEN
->SETS_Course='MastersinEnglish';
->ENDIF;
->END//
现在,当我们调用此过程时,我们可以看到以下结果:mysql>Delimiter;//
mysql>CALLcoursedetails_IF_ELSEIF('Computers',@S_Course);
mysql>Select@S_Course;
+-------------+
|@S_Course|
+-------------+
|B.Tech(CSE)|
+-------------+
1rowinset(0.00sec)
mysql>CALLcoursedetails_IF_ELSEIF('Literature',@S_Course);
mysql>Select@S_Course;
+--------------------+
|@S_Course|
+--------------------+
|MastersinEnglish|
+--------------------+
1rowinset(0.00sec)