技术文摘
MySQL 中 while、repeat、loop 循环的流程控制
2025-01-15 00:45:51 小编
MySQL 中 while、repeat、loop 循环的流程控制
在 MySQL 数据库编程中,流程控制语句是非常重要的一部分,其中 while、repeat、loop 循环为开发者提供了强大的逻辑处理能力。
首先来看 while 循环。while 循环的语法结构为:“WHILE 条件 DO 循环体语句 END WHILE;”。其执行逻辑是,当进入 while 循环时,会先对设定的条件进行判断,如果条件为真,就会执行循环体中的语句,执行完毕后再次检查条件,只要条件一直为真,就会持续循环执行。例如,我们要创建一个存储过程,实现从 1 到 10 的累加:
DELIMITER //
CREATE PROCEDURE while_demo()
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE sum INT DEFAULT 0;
WHILE i <= 10 DO
SET sum = sum + i;
SET i = i + 1;
END WHILE;
SELECT sum;
END //
DELIMITER ;
这段代码中,变量 i 从 1 开始,只要 i 小于等于 10,就会将 i 累加到 sum 中,并使 i 自增 1,直到条件不满足退出循环。
接着是 repeat 循环。repeat 循环的语法是:“REPEAT 循环体语句 UNTIL 条件 END REPEAT;”。它与 while 循环不同,repeat 循环是先执行一次循环体语句,然后再检查 UNTIL 后面的条件。如果条件为假,继续执行循环体;如果条件为真,则退出循环。示例如下:
DELIMITER //
CREATE PROCEDURE repeat_demo()
BEGIN
DECLARE j INT DEFAULT 1;
DECLARE sum_j INT DEFAULT 0;
REPEAT
SET sum_j = sum_j + j;
SET j = j + 1;
UNTIL j > 10
END REPEAT;
SELECT sum_j;
END //
DELIMITER ;
这里即使开始时条件不满足,也会先执行一次循环体,之后再根据条件判断是否继续循环。
最后说说 loop 循环。loop 循环语法为:“[标签:] LOOP 循环体语句 END LOOP [标签];”。loop 本身不会自动判断条件来决定是否退出循环,需要在循环体中使用 LEAVE 语句来手动跳出循环。比如:
DELIMITER //
CREATE PROCEDURE loop_demo()
BEGIN
DECLARE k INT DEFAULT 1;
DECLARE sum_k INT DEFAULT 0;
loop_label: LOOP
SET sum_k = sum_k + k;
SET k = k + 1;
IF k > 10 THEN
LEAVE loop_label;
END IF;
END LOOP loop_label;
SELECT sum_k;
END //
DELIMITER ;
通过合理运用 while、repeat、loop 循环,开发者能够更加高效地处理复杂的业务逻辑,实现各种数据处理和计算任务。
- 微软对 Win11 的 Alt + Tab 功能进行调整 最多支持切换 20 个最近标签页
- Win11 声卡驱动安装失败的解决之道
- Win11 日历无法弹出的解决办法:右下角日历打不开应对策略
- 微软 Win11 Build 2262x.1537 预览版推出及 KB5022910 更新内容汇总
- 如何卸载 Win11 系统自带输入法?Win11 自带输入法删除攻略
- Win11 待机唤醒后网络无法使用的处理办法
- Win11 硬盘空间不足的解决之道:调整方法
- Win11 中“为了对电脑进行保护,已经阻止此应用”的解决办法
- Win11 系统未检测到 NVIDIA 图形卡的解决之法
- Win11 搜索栏持续加载的解决之道 或 如何解决 Win11 搜索框转圈无法使用的问题
- 微软 2016 年 Windows 根证书信任程序列表出炉 20 个根证书将被移除
- Windows 提示找不到 clipbrd.exe 文件,打开粘贴板该如何处理?
- Windows 系统输入特殊符号的三种输入法教程
- Win7/Win8.1/Win10 中 UAC 对话框“是”无法点击的原因与解决办法
- 解决 Windows 自带截图工具 SnippingTool 未运行错误提示的方法