MySQL での結果セットのループ: プロシージャベースのアプローチ
プログラマーは、多くの場合、MySQL クエリの結果をループで処理する必要があります。このタスクは通常、PHP の mysql_fetch_assoc 関数、または他のプログラミング言語の同様のメソッドを使用して実行されます。ただし、クエリの結果をループするストアド プロシージャを MySQL で作成することもできます。
これを実現するには、次のようなストアド プロシージャ テンプレートを使用できます:
CREATE PROCEDURE GetFilteredData() BEGIN DECLARE bDone INT; DECLARE var1 CHAR(16); DECLARE var2 INT; DECLARE var3 VARCHAR(50); DECLARE curs CURSOR FOR SELECT something FROM somewhere WHERE some stuff; DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = 1; DROP TEMPORARY TABLE IF EXISTS tblResults; CREATE TEMPORARY TABLE IF NOT EXISTS tblResults ( Fld1 type, Fld2 type, ... ); OPEN curs; SET bDone = 0; REPEAT FETCH curs INTO var1, var2, var3; IF whatever_filtering_desired INSERT INTO tblResults VALUES (var1, var2, var3); END IF; UNTIL bDone END REPEAT; CLOSE curs; SELECT * FROM tblResults; END
考慮事項:
以上がストアド プロシージャを使用して MySQL 結果セットをループするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。