-- 1、IF语句
-- 创建存储过程,判断两个输入参数哪一个大
-- 输入的第一个参数对应p1,第二个对应p2,@ax用来接收输出变量p3; 如果p1>p2,输出1;如果p1=p2,输出2;其他情况,输出3。
-- -- 定义存储过程
DELIMITER $$
CREATE PROCEDURE difference(IN p1 INTEGER,IN p2 INTEGER,OUT p3 INTEGER)
BEGIN
IF p1 > p2 THEN SET p3 = 1;
ELSEIF p1= p2 THEN SET p3 = 2;
ELSE SET p3 = 3;
END IF;
END $$
DELIMITER ;
-- --调用存储过程
call difference(12,56,@ax);
SELECT @ax;
+------+
| @ax |
+------+
| 3 |
+------+
-- 2、CASE语句
-- -- 定义存储过程
#如果该存储过程存在则删除
drop procedure if exists difference2;
DELIMITER $$
CREATE PROCEDURE difference2(IN p1 INTEGER,IN p2 INTEGER,OUT p3 INTEGER)
BEGIN
case
when p1 > p2 THEN SET p3 = 1;
when p1= p2 THEN SET p3 = 2;
ELSE SET p3 = 5;
END CASE;
END $$
DELIMITER ;
-- --调用存储过程
call difference2(123,561,@ax);
SELECT @ax;
+------+
| @ax |
+------+
| 5 |
+------+
-- 3.WHILE循环
DELIMITER $$
CREATE PROCEDURE do_while(x int)
BEGIN
DECLARE v INT DEFAULT 5;
set v=x;
WHILE v>0 DO
select v;
SET v=v-1;
END WHILE;
END$$
DELIMITER ;
call do_while(8);
【mysql 存储过程】存储过程之流程控制语句
最新推荐文章于 2023-05-21 16:12:07 发布