直接上内容

第一:存储过程中CASE 条件

 


1. CREATE PROCEDURE p_case(IN parameter1 INT) 
2. BEGIN
3. DECLARE variable1 INT; 
4. SET
5. CASE
6. WHEN 0 THEN INSERT INTO t VALUES(0); 
7. WHEN 1 THEN INSERT INTO t VALUES(1); 
8. ELSE INSERT INTO t VALUES(2); 
9. END CASE; 
10. END;

LOOPS 循环
【一】WHILE...END WHILE
【二】LOOP...END LOOP
【三】REPEAT...END REPEAT
【四】GOTO

一:WHILE...END WHILE


1. CREATE PROCEDURE
2. BEGIN
3. DECLARE v INT; 
4. SET
5.     WHILE v < 5 DO 
6. INSERT INTO t VALUES(v); 
7. SET
8. END
9. END;//

二:LOOP...END LOOP

 



1. CREATE PROCEDURE p_loop() 
2. BEGIN 
3.     DECLARE v INT; 
4.     SET v = 0; 
5.     loop_label:LOOP 
6.         INSERT INTO t VALUES(v); 
7.         SET v = v + 1; 
8.         IF v>=5 THEN 
9.             LEAVE loop_label; 
10. END
11. END
12. END;//

三:REPEAT...END REPEAT
 

1. CREATE PROCEDURE
2. BEGIN
3. DECLARE v INT; 
4. SET
5.     REPEAT 
6. INSERT INTO t VALUES(v); 
7. SET
8.         UNTIL v>=5 
9. END
10. END;//

存储过程:

有返回


1. CREATE PROCEDURE
2. OUT pl INT, 
3. OUT ph INT, 
4. OUT pa INT
5. ) 
6. BEGIN
7. SELECT MAX(option_id) INTO ph FROM
8. SELECT Min(option_id) INTO pl FROM
9. SELECT AVG(option_id) INTO pa FROM
10. END; 
11. CALL optionsrank(@pl,@ph,@pa) // 
12. SELECT

IN AND OUT 有传入和传出参数

 

1. CREATE PROCEDURE
2. IN in_option_id INT, 
3. OUT
4. ) 
5. BEGIN
6. SELECT option_value INTO out_option_value FROM wp_options WHERE
7. END; 
8. CALL in_out_test(100,@out) // 
9. SELECT @out

 


转载于:https://blog.51cto.com/phpzf/793775