MySQL WHILEループステートメントをストアドプロシージャでどのように使用できますか?
MySQLには、条件に基づいてSQLコードのブロックを繰り返し実行できるループステートメントが用意されています。 WHILE ループステートメントは、そのような種類のループステートメントの1つです。その構文は次のとおりです-
WHILE expression DO statements END WHILE
実際、WHILEループは、すべての反復の開始時に式をチェックします。式がtrueと評価された場合、MySQLは、式がfalseと評価されるまで、WHILEとENDWHILEの間でステートメントを実行します。 WHILEループは、ステートメントが実行される前に式をチェックするため、プレテストループとも呼ばれます。
ストアドプロシージャでのWHILEループの使用法を示すために、以下に例を示します-
mysql> Delimiter // mysql> CREATE PROCEDURE While_Loop() -> BEGIN -> DECLARE A INT; -> DECLARE XYZ Varchar(50); -> SET A = 1; -> SET XYZ = ''; -> WHILE A <=10 DO -> SET XYZ = CONCAT(XYZ,A,','); -> SET A = A + 1; -> END WHILE; -> SELECT XYZ; -> END // Query OK, 0 rows affected (0.31 sec)
これで、このプロシージャを呼び出すと、以下の結果を確認できます-
mysql> DELIMITER ; mysql> call While_Loop(); +-----------------------+ | XYZ | +-----------------------+ | 1,2,3,4,5,6,7,8,9,10, | +-----------------------+ 1 row in set (0.03 sec)
-
MySQLのストアドプロシージャを介してループする方法は?
MySQLでストアドプロシージャをループする方法を見てみましょう mysql> DELIMITER // mysql> CREATE PROCEDURE do_WhileDemo(LastValue INT) -> BEGIN -> SET @loop = 0; -> REPEAT -> SET @loop= @loop+ 1;
-
MySQLでselectステートメントを使用してストアドプロシージャを呼び出す方法は?
MySQLでは、FROM句でselectfromプロシージャを使用することはできません。 CALLコマンドを使用すると、その後SELECTステートメントを実行できます。 最初にテーブルを作成しましょう: mysql> create table DemoTable2 -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(100), -> Shippi