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 중국어 웹사이트의 기타 관련 기사를 참조하세요!