MySQL 中的 for 循环

在本教程中,我们将学习如何在 MySQL 中使用 for 循环。

for 循环通常用于查询特定条件。简单来说,这些循环在 MySQL 中继续执行,直到满足特定的预定义条件。

一旦满足设置条件,正在考虑的 for 循环执行将终止。在这个 for 循环终止后,我们可以检查打印在控制台中或存储在数据结构中的循环结果。

让我们更多地了解这个循环的细节和实现。

要在 MySQL 中运行或执行 for 循环,必须编写一个存储过程。这个过程有时被称为 MySQL 语句的集合,它们一起编写以避免重复执行 MySQL 查询。

在 MySQL 中编写存储过程有多种方法,我们将在单独的教程中了解更多信息。让我们了解如何在 MySQL 的特定数据库中为 for 循环编写存储过程。

让我们创建一个虚拟数据库。我们可以将此数据库命名为 boatdb,它指的是为特定公司准备航行的不同船只。我们可以使用以下查询来做到这一点。

CREATEDATABASEboatdb;

一旦我们这样做,我们可以看到我们的目录中将有一个名为 boatdb 的新数据库。

注意
只有在 MySQL 服务器上不存在此类数据库时才会创建此类数据库。

我们现在可以通过启用它的使用在这个数据库中执行查询和过程。我们可以通过以下查询使用这个新创建的数据库。

USEboatdb;

这将改变我们当前正在考虑的数据库。

现在让我们编写一个带有 for 循环的存储过程。特别是,让我们尝试使用逗号分隔打印从 -50 的值。

-- Start of our procedure
delimiter//CREATEprocedureboatdb.for_loop_example()wholeblock:BEGINDECLARExINT;DECLAREstrVARCHAR(255);SETx=-5;SETstr='';loop_label:LOOPIFx>0THENLEAVEloop_label;ENDIF;SETstr=CONCAT(str,x,',');SETx=x+1;ITERATEloop_label;ENDLOOP;SELECTstr;END//-- End of Procedure

正如我们在上面的过程中看到的,我们有一个变量 x,最初设置为 -5。我们在循环中的每次迭代中更新 x 的值,并用逗号打印 x 的值以分隔相邻值。

一旦我们编写并设置好要使用的过程,我们就可以使用 MySQL 中的 CALL 语句调用该过程。可以说明如下。

callfor_loop_example();

正如我们在上面的语句中看到的,我们调用 for_loop_example(),我们在 boatdb 数据库中的存储过程。

输出:

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

正如我们之前的目标,我们使用存储过程在 for 循环的帮助下打印了从 -50 的值。

注意
我们在输出末尾有一个逗号,因为我们设计了循环,以便首先打印 x 的值。然后生成逗号,因此基于 x > 0 的终止条件,我们在输出末尾有一个额外的逗号。

因此,借助 MySQL 中的存储过程,我们可以高效地编写一个 for 循环,该循环可以查询数据并按预期生成有意义的结果。