直接上内容
第一:存储过程中CASE 条件
CREATE PROCEDURE p_case(IN parameter1 INT)
BEGIN
DECLARE variable1 INT;
SET variable1 = parameter1 + 1;
CASE variable1
WHEN 0 THEN INSERT INTO t VALUES(0);
WHEN 1 THEN INSERT INTO t VALUES(1);
ELSE INSERT INTO t VALUES(2);
END CASE;
END;
LOOPS 循环
【一】WHILE...END WHILE
【二】LOOP...END LOOP
【三】REPEAT...END REPEAT
【四】GOTO
一:WHILE...END WHILE
CREATE PROCEDURE p_while()
DECLARE v INT;
SET v = 0;
WHILE v < 5 DO
INSERT INTO t VALUES(v);
SET v = v + 1;
END WHILE;
END;//
二:LOOP...END LOOP
CREATE PROCEDURE p_loop()
loop_label:LOOP
IF v>=5 THEN
LEAVE loop_label;
END IF;
END LOOP;
END;//
三:REPEAT...END REPEAT
CREATE PROCEDURE p_repeat()
REPEAT
UNTIL v>=5
END REPEAT;
存储过程:
有返回
CREATE PROCEDURE optionsrank(
OUT pl INT,
OUT ph INT,
OUT pa INT
)
SELECT MAX(option_id) INTO ph FROM wp_options;
SELECT Min(option_id) INTO pl FROM wp_options;
SELECT AVG(option_id) INTO pa FROM wp_options;
CALL optionsrank(@pl,@ph,@pa) //
SELECT @pl,@ph,@pa //
IN AND OUT 有传入和传出参数
CREATE PROCEDURE in_out_test(
IN in_option_id INT,
OUT out_option_value TEXT
BEGIN
SELECT option_value INTO out_option_value FROM wp_options WHERE option_id = in_option_id;
CALL in_out_test(100,@out) //
SELECT @out //
本文转自kefirking 51CTO博客,原文链接:http://blog.51cto.com/phpzf/793775,如需转载请自行联系原作者