문제

SelectProc Wich에는 SELECT 문이 포함 된 절차가 있습니다. 프로 시저를 추가하고 다음과 같이 사용하고 싶습니다.

CREATE PROCEDURE SelectProc (IN LimitRowsCount INTEGER UNSIGNED) 
BEGIN
   SELECT (...)
   LIMIT LimitRowsCount;
END

그러나이 접근법은 작동하지 않습니다.

SELECT 자체에는 중첩 하위 쿼리가 포함되어 있으므로보기를 생성 할 수 없습니다. 동적 SQL보다 더 많은 프로퍼가 있습니까 (준비된 진술)?

도움이 되었습니까?

해결책

CREATE PROCEDURE SelectProc (IN LimitRowsCount INT) 
BEGIN

SET @LimitRowsCount1=LimitRowsCount; 

PREPARE STMT FROM "SELECT (...) LIMIT ?";

EXECUTE STMT USING @LimitRowsCount1; 

END

다른 팁

매뉴얼에서 :

The LIMIT clause can be used to constrain the number of rows 
returned by the SELECT statement. LIMIT takes one or two numeric 
arguments, which must both be nonnegative integer constants  
(except when using prepared statements). 

MySQL 매뉴얼 -12.2.8. 구문을 선택하십시오

그래서 그것은 아니요 - 당신은 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top