MySQL - WHILE 语句
存储过程是存储在 SQL 目录中的子例程,是 SQL 语句的片段。这些过程包含 IN 和 OUT 参数,或两者兼有。如果您使用 SELECT 语句,它们可能会返回结果集;它们可以返回多个结果集。您还可以在 MYSQL 中创建函数。
与其他编程语言类似,MySQL 支持流控制语句,例如 IF、CASE、ITERATE、LEAVE LOOP、WHILE 和 REPEAT。您可以在存储程序(过程)中使用这些语句,并在存储函数中使用 RETURN 语句。您可以将一个流控制语句与另一个流控制语句一起使用。
MySQL WHILE 语句
WHILE 是一个复合 MySQL 语句,用于在指定条件为 TRUE 时重复执行单个或一组语句。
语法
以下是 MySQL 中 WHILE 语句的语法 -
begin_label: WHILE search_condition DO statement_list END WHILE end_label
其中,statement_list 是要重复执行的单个或一组语句。begin_label 和 end_label 是 WHILE 语句的可选标签。 WHILE 语句中的每个语句都以分号(或当前分隔符)结尾。
示例 1
以下查询演示了如何在过程中使用 WHILE 语句 -
DELIMITER // CREATE PROCEDURE while_loop() BEGIN DECLARE num INT default 1; DECLARE res Varchar(50) default ''; WHILE num < 78125 DO SET res = CONCAT(res,num,','); SET num = num*5; END While; SELECT res; END // DELIMITER ;
您可以按如下所示调用上述过程 -
call while_loop;
输出
上述 mysql 查询产生以下输出 -
res |
---|
1,5,25,125,625,3125,15625, |
示例 2
以下查询是 WHILE 语句的另一个示例 -
Delimiter // CREATE PROCEDURE While_Loop() BEGIN DECLARE num INT default 1; DECLARE res Varchar(50) default ''; SET num = 1; SET res = ''; WHILE num <=10 DO SET res = CONCAT(res, num, ','); SET num = num + 1; END WHILE; SELECT res; END //
您可以按如下所示调用上述过程 -
call While_Loop//
输出
以下是上述程序的输出 -
res |
---|
1,2,3,4,5,6,7,8,9,10, |