> 데이터 베이스 > MySQL 튜토리얼 > MySQL 저장 프로시저의 OUT 매개변수에 동적 쿼리 결과를 할당하는 방법은 무엇입니까?

MySQL 저장 프로시저의 OUT 매개변수에 동적 쿼리 결과를 할당하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-30 06:41:10
원래의
1026명이 탐색했습니다.

How to Assign the Result of a Dynamic Query to an OUT Parameter in a MySQL Stored Procedure?

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 매개변수에 출력하면 다음 단계를 수행할 수 있습니다.

  1. 사용자 정의 변수를 생성하여 결과:
SET @numOfRecords = 0;
로그인 후 복사
  1. 커서를 사용하여 동적 쿼리 준비 및 실행:
DECLARE query1Cursor CURSOR FOR query1;
OPEN query1Cursor;
FETCH query1Cursor INTO @numOfRecords;
CLOSE query1Cursor;
로그인 후 복사
  1. OUT 매개변수를 할당된 값으로 업데이트 :
SET numOfRecords = @numOfRecords;
로그인 후 복사

이 수정된 접근 방식을 사용하면 저장 프로시저에서 두 가지 작업을 모두 수행할 수 있습니다. 동적 쿼리를 실행하고 특정 쿼리의 출력을 OUT 매개변수에 할당합니다.

위 내용은 MySQL 저장 프로시저의 OUT 매개변수에 동적 쿼리 결과를 할당하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿