程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySql存儲過程—6、循環

MySql存儲過程—6、循環

編輯:MySQL綜合教程


MySql存儲過程—6、循環   相關鏈接: MySql存儲過程—1、SQL存儲過程的基礎知識 http://www.BkJia.com/database/201208/148790.html; MySql存儲過程—2、第一個MySql存儲過程的建立 http://www.BkJia.com/database/201208/148791.html; MySql存儲過程—3、變量 http://www.BkJia.com/database/201208/149069.html; MySql存儲過程—4、參數 http://www.BkJia.com/database/201208/149113.html; MySql存儲過程—5、邏輯判斷,條件控制 http://www.BkJia.com/database/201208/149282.html   在MySql的存儲過程中可使用的循環有三種:WHILE、REPEAT、LOOP   1、WHILE   WHILE的格式是這樣的: [sql]  WHILE expression DO      Statements   END WHILE   下面是個例子 [sql]  DELIMITER $$       www.2cto.com   DROP PROCEDURE IF EXISTS `test`.`WhileLoopProc` $$   CREATE PROCEDURE `test`.`WhileLoopProc` ()   BEGIN    DECLARE x  INT;    DECLARE str  VARCHAR(255);    SET x = 1;    SET str =  '';    WHILE x  <= 5 DO        SET  str = CONCAT(str,x,',');        SET  x = x + 1;    END WHILE;    SELECT str;   END $$      DELIMITER ;   上面的例子最後輸出“1,2,3,4,5,”這樣的字符。 2、REPEAT   REPEAT的格式是這樣的:   www.2cto.com   [sql]  REPEAT   Statements;   UNTIL expression   END REPEAT   REPEAT好比我們編程裡面的do...while一樣。這邊例子就不舉了,同上面的類似。 3、LOOP 及 LEAVE、ITERATE   這裡LOOP用來標記循環;而LEAVE表示離開循環,好比編程裡面的break一樣;ITERATE則繼續循環,類型與編程裡面的continue。   [sql]  DELIMITER $$      DROP PROCEDURE IF EXISTS `test`.`LoopProc` $$   CREATE PROCEDURE `test`.`LoopProc` ()   BEGIN   DECLARE x  INT;   DECLARE str  VARCHAR(255);   SET x = 1;   SET str =  '';   loop_label:  LOOP     IF  x > 10 THEN      LEAVE  loop_label;     END  IF;     SET  x = x + 1;     IF  (x mod 2) THEN      ITERATE  loop_label;     ELSE    www.2cto.com      SET  str = CONCAT(str,x,',');     END  IF;      END LOOP;   SELECT str;   END $$      DELIMITER ;   上面代碼輸出10以內的偶數,用逗號分隔。這裡注意到x>10的時候就LEAVE掉,如果遇到奇數則ITERATE,奇數對2取模為1,表示true

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved