집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 저장 프로시저에서 동적 쿼리 결과를 OUT 매개변수로 검색하는 방법은 무엇입니까?
동적 쿼리 실행 및 결과를 MySQL 저장 프로시저의 변수로 검색
MySQL에서는 저장 프로시저 내에서 동적 쿼리를 생성하여 처리할 수 있습니다. 복잡하고 유연한 데이터 작업. 이 문서에서는 동적 쿼리 결과를 OUT 매개 변수로 검색하는 과정을 안내합니다.
다음 저장 프로시저를 고려하세요.
CREATE PROCEDURE searchInvoice( OUT numOfRecords INT ) BEGIN DECLARE query1 TEXT; DECLARE query2 TEXT; SET query1 = 'SELECT COUNT(*) AS bla FROM bla bla bla.....'; SET query2 = 'SELECT * FROM bla bla bla....'; -- Dynamically generate the rest of both queries based on IN parameters. -- Here, you want to assign the output of query1 to numOfRecords. SET @Sql = query2; PREPARE STMT FROM @Sql; EXECUTE STMT; DEALLOCATE PREPARE STMT; -- PHP can access the output of query2 here. END
query1의 출력을 OUT 매개 변수 numOfRecords로 검색하려면 , 다음 기술을 사용할 수 있습니다.
SET @outVar = @queryResult;
예:
SET @numOfRecords = @query1Result;
다음은 샘플 데모입니다.
CREATE PROCEDURE procedure1(IN Param1 VARCHAR(255), OUT Param2 VARCHAR(255), OUT Param3 VARCHAR(255)) BEGIN SET @c2 = ''; SET @c3 = ''; SET @query = 'SELECT column2, column3 INTO @c2, @c3 FROM table1 WHERE column1 = ?'; PREPARE stmt FROM @query; SET @c1 = Param1; EXECUTE stmt USING @c1; DEALLOCATE PREPARE stmt; SET Param2 = @c2; SET Param3 = @c3; END$$
프로시저 호출 및 변수 사용:
SET @Param1 = 2; SET @Param2 = ''; SET @Param3 = ''; CALL procedure1(@Param1, @Param2, @Param3); SELECT @Param2, @Param3; +---------+---------+ | @Param2 | @Param3 | +---------+---------+ | value3 | value4 | +---------+---------+
이 기술을 활용하면 다음을 실행할 수 있습니다. 동적 쿼리를 수행하고 해당 결과를 MySQL 저장 프로시저 내 OUT 매개변수로 검색하여 복잡한 데이터 작업을 효율적으로 처리할 수 있습니다.
위 내용은 MySQL 저장 프로시저에서 동적 쿼리 결과를 OUT 매개변수로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!