MySQL的 循环结构

前言

流程控制结构

顺序结构:程序从上往下依次执行
分支结构:程序从两条或多条路径中选择一条去执行
循环结构:程序在满足一定条件的基础上,重复执行一段代码

循环结构

分类:
while,loop,repeat

循环控制:
iterate 类似于 continue 继续 ,结束本次循环,继续下一次
leave 类似 break 跳出,结束当前所在的循环

1,while

语法:

[标签:] while 循环条件, do
         循环体;
	end while [标签]
end 	

联想Java

while (循环条件){
	循环体;
}		 

2,loop

语法:

[标签] loop
	循环体
end loop [标签]

可以用来模拟简单的死循环

3,repeat

语法

[标签:] repeat
	循环体;
until 结束循环的条件
end repeat [标签];

案例1:批量插入,根据次数 插入到admin表中多条数据

create procedure pro_while1(in insertCount int)
begin
	declare i int default 1; #定义i的初始值为1
	while i <= insertCount Do # 当i小于等于输入的参数
		insert into admin(`username`,`password`) values(concat('huan',i),'8888'); #则 添加如下语句
		set i = i + 1; # 进行自增
	end while;
end

call pro_while1(100);

案例2:添加leave 批量插入,根据次数 插入到admin表中多条数据
如果次数大于20 则停止

create procedure test_while2(in insertCount int)
begin
	declare i int default 1; #定义i的初始值为1
	a:while i <= insertCount Do # 添加了个标签
		insert into admin(`username`,`password`) values(concat('hao',i),'8888');
		if i >= 20 then leave a; #如果 i大于等于 20 则跳出循环(一定要添加标签,否则失败)
		end if; # 返回
		set i = i + 1;# 自增
	end while a; # 返回标签
end

案例3,添加iterate语句, 批量插入,根据次数 插入到admin表中多条数据 只插入偶数次

create procedure test_while3(in insertCount int)
begin
	declare i int default 1; # 定义i的初始值
	a:while i <= insertCount Do
		set i = i + 1; #先进行自增
		if mod(i,2)!=0 then iterate a; # 如果i除以2不等于0,继续循环,但不输出结果。
		end if;
		insert into admin(`username`,`password`) values(concat('hao',i),'8888');	
	end while a;
end

Mod(a,b) 在sql中的意思是 a / b 的余数
基础用法:如果id需要是偶数或者奇数时就可以使用mod。
mod(id,2)=1 是指id是奇数。
mod(id,2)=0 是指id是偶数

java:

int i = 1;
while (i<=insertCount){
	i++;
	if(i%2==0){
		continue;
	}
	插入;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值