MySQLのストアドプロシージャを介してループする方法は?
MySQLでストアドプロシージャをループする方法を見てみましょう
mysql> DELIMITER // mysql> CREATE PROCEDURE do_WhileDemo(LastValue INT) -> BEGIN -> SET @loop = 0; -> REPEAT -> SET @loop= @loop+ 1; -> select @loop; -> UNTIL @loop >LastValue -> END REPEAT; -> END // Query OK, 0 rows affected (0.17 sec) mysql> DELIMITER ;
次に、CALLコマンドを使用してストアドプロシージャを呼び出します。
クエリは次のとおりです
mysql> call do_WhileDemo(10);
以下は出力です
+-------+ | @loop | +-------+ | 1 | +-------+ 1 row in set (0.00 sec) +-------+ | @loop | +-------+ | 2 | +-------+ 1 row in set (0.01 sec) +-------+ | @loop | +-------+ | 3 | +-------+ 1 row in set (0.02 sec) +-------+ | @loop | +-------+ | 4 | +-------+ 1 row in set (0.03 sec) +-------+ | @loop | +-------+ | 5 | +-------+ 1 row in set (0.04 sec) +-------+ | @loop | +-------+ | 6 | +-------+ 1 row in set (0.04 sec) +-------+ | @loop | +-------+ | 7 | +-------+ 1 row in set (0.05 sec) +-------+ | @loop | +-------+ | 8 | +-------+ 1 row in set (0.06 sec) +-------+ | @loop | +-------+ | 9 | +-------+ 1 row in set (0.07 sec) +-------+ | @loop | +-------+ | 10 | +-------+ 1 row in set (0.08 sec) +-------+ | @loop | +-------+ | 11 | +-------+ 1 row in set (0.09 sec) Query OK, 0 rows affected (0.10 sec)
-
MySQLストアドプロシージャに条件を正しく実装するにはどうすればよいですか?
ストアドプロシージャで条件を設定するには、次の構文を使用します- if yourCondition then yourStatement1; else yourStatement2'; end if ; end // ストアドプロシージャで欠落しているセミコロンを修正するために、上記の構文を実装しましょう- mysql> delimiter // mysql>
-
MySQLストアドプロシージャでDELIMITERを正しく使用するにはどうすればよいですか?
正しい方法は次のとおりです- DELIMITER // CREATE PROCEDURE yourStoredProcedureName() BEGIN IF yourCondition then yourStatement1 ; else yourStatement2 ; END IF ; END // DELIMITER ; ここで例を見て、ストアドプロシージャを作成しましょう- mysql> DELIMITER // mysql> CREATE PROCEDURE delimit