mysql循环语句while、loop与REPEAT用法

发布时间:2020-09-17编辑:脚本学堂
有关mysql中循环语句while、loop与repeat语句的例子,mysql while语句的用法举例,同时介绍了loop与repeat语句的实例代码,需要的朋友参考下。

一、创建用于测试的数据表
 

复制代码 代码示例:
##删除userInfo表
DROP TABLE IF EXISTS userInfo;
 
CREATE TABLE userInfo(
userId INT AUTO_INCREMENT PRIMARY KEY,
userName VARCHAR(30),
userPwd VARCHAR(30)
);
 
CREATE TABLE test_trigger_table(
id INT,
NAME VARCHAR(30)
);
 
##插入数据
INSERT INTO userInfo VALUES(NULL,'王五','123456');
##查询
SELECT * FROM userInfo;
 

 
二,mysql循环语句
(1).WHILE循环
 

 [ label: ]   WHILE  expression DO
 statements
 END   WHILE   [ label ]  ;
 

 
(2).LOOP循环
 

 [ label: ]  LOOP
  statements
  END  LOOP  [ label ] ;
 

 
(3).REPEAT UNTIL循环
 

 [ label: ]  REPEAT
 statements
 UNTIL expression
 END  REPEAT  [ label ]  ;
 

 
##repeat实例
 

复制代码 代码示例:
##REPEAT ... END REPEAT
##drop PROCEDURE p_repeat;
DELIMITER//
CREATE PROCEDURE p_repeat ()
BEGIN
DECLARE v INT;
SET v = 0;
REPEAT
INSERT INTO userInfo VALUES(NULL,'王五','123456');
SET v = v + 1;
UNTIL v >= 5
END REPEAT;
END; //
 

 
##注释:这是一个REPEAT循环的例子,功能和前面WHILE循环一样。
## 区别在于它在执行后检查结果,而WHILE则是执行前检查。(译者语:可能等同于DO WHILE吧
 
######调用存储过程
 

复制代码 代码示例:
CALL p_repeat();
 
SELECT COUNT(*) FROM userInfo;
 
##while实例
##drop PROCEDURE pro();
DELIMITER//
CREATE PROCEDURE pro_while()
BEGIN
  DECLARE cout INT;
  SET cout=10;
    WHILE cout>0 DO
INSERT INTO userInfo VALUES(NULL,'王五','123456');
SET cout=cout-1;
    END WHILE;
END;
//
 

 
##注释:这是一个while循环的例子,功能和前面loop循环一样。
##     区别在于它在执行前检查结果,而loop则是执行后检查。(译者语:可能等同于WHILE
 
CALL pro_while();
 
#####loop实例
 

复制代码 代码示例:
####LOOP ... END LOOP
DELIMITER//
CREATE PROCEDURE p_loop ()
BEGIN
DECLARE v INT;
SET v = 0;
loop_label: LOOP
INSERT INTO userInfo VALUES(NULL,'王五','123456');
SET v = v + 1;
IF v >= 5 THEN
LEAVE loop_label;
END IF;
END LOOP;
END; //
 
CALL p_loop();
 
SELECT COUNT(*) FROM userInfo;