在MySQL中,WHILE语句仅用于存储过程或函数中实现循环逻辑,需先声明变量并用SET更新,条件为真时执行循环体,如示例中输出1到5的计数;还可用LOOP和REPEAT作为替代方案。

在 MySQL 中,while 语句不能直接在存储过程或函数之外使用,也不能像高级编程语言那样用于普通脚本中的变量判断。它主要用于 存储过程(Stored Procedure) 或 函数(Function) 中实现循环逻辑。
WHILE 的基本语法
在存储过程中,WHILE 语句的语法如下:
WHILE 条件 DO
-- 循环体(可以操作变量、执行 SQL 等)
END WHILE;
条件部分通常是对一个变量的判断,比如是否小于某个值。
示例:在存储过程中用 WHILE 判断变量
下面是一个使用 WHILE 循环并判断变量的例子:
DELIMITER $$CREATE PROCEDURE LoopExample() BEGIN DECLARE counter INT DEFAULT 1;
WHILE counter zuojiankuohaophpcn= 5 DO SELECT CONCAT('当前计数: ', counter) AS info; SET counter = counter + 1; END WHILE;END$$
DELIMITER ;
php商城系统(本地测试包)下载PHP商城系统是国内领先商城系统,网店系统,购物系统,网上商城系统,B2C商城系统产品.同时也是一个商业的PHP开发框架。PHP 商城系统由内容、文章、会员、留言、订单、 财务、广告、短消息、数据库管理、营销推广、内置支付管理、商品配送管理、无限级分类、全站搜索等多个功能模块插件组成。在当今瞬机万变的市场环境中,快速高效的IT解决方案是您业务成功的关键。我们PHP商城系统能为您量身打造完全符合需求
调用该存储过程:
CALL LoopExample();
输出结果会是 5 行,分别显示从 1 到 5 的计数信息。
关键点说明
- DECLARE 用于声明变量,必须在 BEGIN 后的第一部分声明。
- SET 用于修改变量值。
- 条件表达式中可以使用比较操作符(如 , =, 等)对变量进行判断。
- WHILE 是先判断条件再执行循环体,如果一开始不满足条件,则一次都不执行。
替代方案:LOOP 和 REPEAT
MySQL 还支持另外两种循环结构:
- LOOP:无条件循环,需配合 LEAVE(相当于 break)使用。
- REPEAT ... UNTIL:先执行后判断,类似 do-while。
例如使用 REPEAT:
REPEAT
SET counter = counter + 1;
SELECT counter;
UNTIL counter >= 5
END REPEAT;
基本上就这些。在 MySQL 中通过 WHILE 判断变量,主要是在存储过程中控制流程,不能在普通查询中直接使用。注意变量作用域和声明位置即可。










