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