MySQL 中的 for 迴圈

Preet Sanghavi 2023年1月3日
MySQL 中的 for 迴圈

在本教程中,我們將學習如何在 MySQL 中使用 for 迴圈。

for 迴圈通常用於查詢特定條件。簡單來說,這些迴圈在 MySQL 中繼續執行,直到滿足特定的預定義條件。

一旦滿足設定條件,正在考慮的 for 迴圈執行將終止。在這個 for 迴圈終止後,我們可以檢查列印在控制檯中或儲存在資料結構中的迴圈結果。

讓我們更多地瞭解這個迴圈的細節和實現。

要在 MySQL 中執行或執行 for 迴圈,必須編寫一個儲存過程。這個過程有時被稱為 MySQL 語句的集合,它們一起編寫以避免重複執行 MySQL 查詢。

在 MySQL 中編寫儲存過程有多種方法,我們將在單獨的教程中瞭解更多資訊。讓我們瞭解如何在 MySQL 的特定資料庫中為 for 迴圈編寫儲存過程。

讓我們建立一個虛擬資料庫。我們可以將此資料庫命名為 boatdb,它指的是為特定公司準備航行的不同船隻。我們可以使用以下查詢來做到這一點。

CREATE DATABASE boatdb;

一旦我們這樣做,我們可以看到我們的目錄中將有一個名為 boatdb 的新資料庫。

注意
只有在 MySQL 伺服器上不存在此類資料庫時才會建立此類資料庫。

我們現在可以通過啟用它的使用在這個資料庫中執行查詢和過程。我們可以通過以下查詢使用這個新建立的資料庫。

USE boatdb;

這將改變我們當前正在考慮的資料庫。

現在讓我們編寫一個帶有 for 迴圈的儲存過程。特別是,讓我們嘗試使用逗號分隔列印從 -50 的值。

-- Start of our procedure
delimiter //

CREATE procedure boatdb.for_loop_example()
wholeblock:BEGIN
  DECLARE x INT;
  DECLARE str VARCHAR(255);
  SET x = -5;
  SET str = '';
  loop_label: LOOP
    IF x > 0 THEN
      LEAVE loop_label;
    END IF;
    SET str = CONCAT(str,x,',');
    SET x = x + 1;
    ITERATE loop_label;
  END LOOP;
  SELECT str;
END//
-- End of Procedure

正如我們在上面的過程中看到的,我們有一個變數 x,最初設定為 -5。我們在迴圈中的每次迭代中更新 x 的值,並用逗號列印 x 的值以分隔相鄰值。

一旦我們編寫並設定好要使用的過程,我們就可以使用 MySQL 中的 CALL 語句呼叫該過程。可以說明如下。

call for_loop_example();

正如我們在上面的語句中看到的,我們呼叫 for_loop_example(),我們在 boatdb 資料庫中的儲存過程。

輸出:

str
-5,-4,-3,-2,-1,0,

正如我們之前的目標,我們使用儲存過程在 for 迴圈的幫助下列印了從 -50 的值。

注意
我們在輸出末尾有一個逗號,因為我們設計了迴圈,以便首先列印 x 的值。然後生成逗號,因此基於 x > 0 的終止條件,我們在輸出末尾有一個額外的逗號。

因此,藉助 MySQL 中的儲存過程,我們可以高效地編寫一個 for 迴圈,該迴圈可以查詢資料並按預期生成有意義的結果。

作者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

相關文章 - MySQL Query