如何在儲存過程中使用MySQL LOOP語句?
MySQL 提供了一個 **LOOP** 語句,它可以重複執行一段程式碼,並增加了使用迴圈標籤的靈活性。我們有以下兩個語句可以控制迴圈:
LEAVE 語句
它允許我們立即退出迴圈,而無需等待檢查條件。
ITERATE 語句
它允許我們跳過它下面的所有程式碼,並開始新的迭代。
為了演示 **LOOP** 語句在儲存過程中的用法,以下是一個儲存過程,它構建一個包含偶數(如 2, 4, 6, 8 等)的字串:
mysql> Delimiter // mysql> CREATE PROCEDURE LOOP_loop() -> BEGIN -> DECLARE A INT; -> DECLARE XYZ VARCHAR(255); -> SET A = 1; -> SET XYZ = ''; -> loop_label: LOOP -> IF A > 10 THEN -> LEAVE loop_label; -> END IF; -> SET A = A + 1; -> IF (A mod 2) THEN -> ITERATE loop_label; -> ELSE -> SET XYZ = CONCAT(XYZ,A,','); -> END IF; -> END LOOP; -> SELECT XYZ; -> END // Query OK, 0 rows affected (0.07 sec)
現在,當我們呼叫此過程時,我們可以看到下面的結果:
mysql> DELIMITER ; mysql> CALL LOOP_loop (); +-------------+ | XYZ | +-------------+ | 2,4,6,8,10, | +-------------+ 1 row in set (0.04 sec) Query OK, 0 rows affected (0.04 sec)
在上面的查詢中,如果 A 的值大於 10,則由於 LEAVE 語句而終止迴圈。如果 A 的值是奇數,則 ITERATE 語句會忽略它下面的所有內容並開始新的迭代。如果 A 的值是偶數,則 ELSE 語句中的程式碼塊將構建包含偶數的字串。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP