语法:
IF 条件 THEN
语句块1;
ELSE
语句块2;
END IF;
例如:
1)设置不同的参数值,按照条件输出信息
DELIMITER //
CREATE PROCEDURE test001()
BEGIN
IF 0>1 THEN
SELECT '哈哈哈哈';
ELSE
SELECT '呵呵';
END IF;
END;
CALL test001;
2)带参数的条件输出存过
DELIMITER //
CREATE PROCEDURE test002(IN num INT)
BEGIN
IF num=0 THEN
SELECT '呵呵';
ELSE
SELECT '嘿嘿';
END IF;
END;
CALL test002(0);
3)存储过程中带有多个分支结构条件语句,即,有多个 if ... else
IF 条件 THEN
语句块1;
ELSEIF 条件2 THEN
语句块2;
ELSEIF 条件3 THEN
语句块3;
ELSE
语句块4;
END IF;
4) 带参数实现输入两个值,比较大小
DELIMITER //
CREATE PROCEDURE test003(IN aa INT,IN bb INT)
BEGIN
IF aa>bb THEN
SELECT 'aa 大于bb';
ELSEIF aa<bb THEN
SELECT 'aa 小于 bb';
ELSE
SELECT 'aa 等于 bb';
END IF;
END;
CALL test003(12,12);
5) 分支语句中还可以进行嵌套
备注:每一组 if ...else 结束都需要 end if ,嵌套的也不例外
DELIMITER//
CREATE PROCEDURE test7(IN a INT,IN b INT)
BEGIN
IF a>b THEN
IF a-b>10 THEN
SELECT "a比b大10以上";
ELSEIF a-b=10 THEN
SELECT "a比b大10";
ELSE
SELECT "a比b大不超过10";
END IF;
ELSEIF a<b THEN
IF b-a>5 THEN
SELECT "b比a大5以上";
ELSEIF b-a=5 THEN
SELECT "b比a大5";
ELSE
SELECT "b比a大不超过5";
END IF;
ELSE
SELECT "a=b";
END IF;
END;
CALL test7(30,30)