Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL. Er stellt hauptsächlich die Prozesssteuerung von MySQL-gespeicherten Prozeduren vor, während der Code in der Schleife eine bestimmte Anzahl von Malen oder bis eine bestimmte Bedingung erfüllt ist . Der Zyklus endet jetzt. Ich hoffe, es wird für alle hilfreich sein.
Empfohlenes Lernen: MySQL-Video-Tutorial
Schleifenklassifizierung:
Loop-Steuerung:
leave ähnelt break, herausspringen, Beende die aktuelle Die Schleife
iterate ähnelt continue, continue, beende diese Schleife und fahre mit der nächsten
【标签:】while 循环条件 do 循环体; end while【 标签】;
-- 创建测试表 create table user ( uid int primary_key, username varchar ( 50 ), password varchar ( 50 ) );
-- -------存储过程-while delimiter $$ create procedure proc16_while1(in insertcount int) begin declare i int default 1; label:while i<=insertcount do insert into user(uid,username,`password`) values(i,concat('user-',i),'123456'); set i=i+1; end while label; end $$ delimiter ; call proc16_while(10);
fort. Die Syntax der gespeicherten Prozedur ist festgelegt: delimiter $$ peocedure-Schleife erstellen name (parameter) begin code end $$ delimiter;
Beachten Sie, dass Sie beim Schreiben des Schleifenkörpers die erste Variable haben müssen, um die Schleife zu definieren. Verwenden Sie declare i int default default value
Dann dlabel:while Beurteilungsbedingung tun loop Body end while label; end && must have
-- -------存储过程-while + leave truncate table user; delimiter $$ create procedure proc16_while2(in insertcount int) begin declare i int default 1; label:while i<=insertcount do insert into user(uid,username,`password`) values(i,concat('user-',i),'123456'); if i=5 then leave label; end if; set i=i+1; end while label; end $$ delimiter ; call proc16_while2(10);
Wenn Sie intern aus der Schleife ausbrechen müssen, verwenden Sie if-Beurteilung, aber Sie brauchen end if am Ende
leave hier ist, um aus der Schleife herauszuspringen Schleife, relativ zu break
-- -------存储过程-while+iterate truncate table user; delimiter $$ create procedure proc16_while3(in insertcount int) begin declare i int default 1; label:while i<=insertcount do set i=i+1; if i=5 then iterate label; end if; insert into user(uid,username,`password`) values(i,concat('user-',i),'123456'); end while label; end $$ delimiter ; call proc16_while3(10);
hier Im Vergleich zu continue führt iterate den folgenden Code nicht aus, wenn es auf eine Wiederholungsschleife trifft
[标签:]repeat 循环体; until 条件表达式 end repeat [标签];
-- -------存储过程-循环控制-repeat use mysql7_procedure; truncate table user; delimiter $$ create procedure proc18_repeat(in insertCount int) begin declare i int default 1; label:repeat insert into user(uid, username, password) values(i,concat('user-',i),'123456'); set i = i + 1; until i > insertCount end repeat label; select '循环结束'; end $$ delimiter ; call proc18_repeat(100);
Empfohlenes Lernen:
MySQL-Video-TutorialDas obige ist der detaillierte Inhalt vonMySQL-Prozesssteuerung während, wiederholen, Schleifenschleife. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!