この記事では、mysql に関する関連知識を提供します。主に、MySQL ストアド プロシージャの while、repeat、loop ループのプロセス制御を紹介します。ループ内のコードは、特定の回数だけ実行されます。特定の条件が満たされるまで実行され、ループが終了します。見てみましょう。皆さんの参考になれば幸いです。
推奨学習: mysql ビデオ チュートリアル
#ループ分類:
leave
と同様break、ジャンプアウト、現在のループを終了 iterate
continue と同様、継続、このループを終了し、次のループに進みます while ループ
【标签:】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);
#ループ本体を記述するときは、declare i intdefault デフォルト値
Then dlabel:while 判定条件 do
## を使用して、ループを定義する最初の変数が必要であることに注意してください。 # ループ本体end while label; end && は
-- -------存储过程-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);が必要です 内部でループから抜け出す必要がある場合は if 判定を使用しますが、最後には end if が必要です ここでの Leave はループから抜け出すことです。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);ここでの反復は continue に相対的です。次のコードは、遭遇した場合には実行されません。repeat ループ
[标签:]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);これは に対する相対的なもので、ループは何があっても一度実行され、その後内部で判定され、満たされていれば直接飛び出しますlooploop
[标签:] loop 循环体; if 条件表达式 then leave [标签]; end if; end loop;
-- -------存储过程-循环控制-loop truncate table user; delimiter $$ create procedure proc19_loop(in insertCount int) begin declare i int default 1; label:loop insert into user(uid, username, password) values(i,concat('user-',i),'123456'); set i = i + 1; if i > 5 then leave label; end if; end loop label; select '循环结束'; end $$ delimiter ; call proc19_loop(10);
以上がMySQL プロセス制御 while、repeat、loop ループの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。