存储过程的例子

举例1:
   创建存储过程:
   DELIMITER $$
    CREATE
        PROCEDURE `zyh`.`if_else_`(
           IN num INT(11),
           OUT total VARCHAR(225)   
        )     
        BEGIN
           DECLARE num_ INT;
           SELECT COUNT(*) INTO num_ FROM goods WHERE pre_price > num;
           IF num_ > 1000 THEN 
             SET total = '大于1000条';
           ELSEIF (num_ > 1 AND num_ < 10) THEN 
             SET total = '大于1条 小于 10 条';
           ELSEIF (num_> 10 AND num_ < 1000) THEN 
             SET total ='大于10条小于 1000'; 
           END IF;      
         END$$
    DELIMITER ;
    
    调用存储过程:
       CALL if_else_(10,@total);
        SELECT @total;

举例2: 游标在存储过程中的使用:


   创建存储过程:
   DELIMITER $$
CREATE  PROCEDURE `zyh`.`you_biao`()
    
    BEGIN
    DECLARE str VARCHAR(225) DEFAULT '';
    DECLARE finished INT DEFAULT 0;
    DECLARE v VARCHAR(20);
    DECLARE bonus_value CURSOR  FOR SELECT `value` FROM bonus;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
    OPEN bonus_value;
    get_value : LOOP
       FETCH bonus_value INTO v;
       IF finished = 1 THEN 
          LEAVE get_value;
       END IF;
       IF str != '' THEN   
          SET str= CONCAT(str,';',v);  
       ELSE  
          SET str = v;
       END IF;       
    END LOOP get_value;
    CLOSE  bonus_value;
    SELECT str;     
        
    END$$

DELIMITER ;  

调用存储过程: 
  call you_biao();

猜你喜欢

转载自blog.csdn.net/qq_37469931/article/details/81538882