ホームページ >データベース >mysql チュートリアル >動的クエリの結果を MySQL ストアド プロシージャの OUT パラメータに割り当てる方法
MySQL ストアド プロシージャでの動的クエリ実行と出力割り当て
MySQL では、ストアド プロシージャ内でクエリを動的に生成して実行できます。 。ただし、動的クエリの結果を OUT パラメータに割り当てるには、少し異なるアプローチが必要です。
質問に示されているストアド プロシージャ コードを考えてみましょう。
CREATE PROCEDURE 'searchInvoice' ( OUT numOfRecords INT ) BEGIN DECLARE query1 TEXT; DECLARE query2 TEXT; SET query1 = 'SELECT COUNT(*) bla bla bla.....'; // Query1 to select the count of matching tuples.. SET query2 = 'SELECT * from bla bla bla....'; // Query2 to select original records... // later part of this both queries generate dynamically according to some IN parameters.. // now I wanna assign the output of the query1 into numOfRecords // and I wanna execute the query2 as well.. like this SET @Sql = query2; PREPARE STMT FROM @Sql; EXECUTE STMT; DEALLOCATE PREPARE STMT; // output of the query2 can be read in PHP END
query1 の出力を numOfRecords OUT パラメーターに追加するには、次の手順を実行できます:
SET @numOfRecords = 0;
DECLARE query1Cursor CURSOR FOR query1; OPEN query1Cursor; FETCH query1Cursor INTO @numOfRecords; CLOSE query1Cursor;
SET numOfRecords = @numOfRecords;
この変更されたアプローチでは、保存されたプロシージャは、動的クエリを実行することも、特定のクエリの出力を OUT パラメータに割り当てることもできます。
以上が動的クエリの結果を MySQL ストアド プロシージャの OUT パラメータに割り当てる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。