【mysql 存储过程】存储过程之流程控制语句

xiaoxiao2021-02-28  81

-- 1IF语句 -- 创建存储过程,判断两个输入参数哪一个大 -- 输入的第一个参数对应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 | +------+ -- 2CASE语句 -- -- 定义存储过程 #如果该存储过程存在则删除 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);
转载请注明原文地址: https://www.6miu.com/read-45716.html

最新回复(0)