전 완전히 저장 프로 시저를 사용하고있어 기본 개념을 이해하려고합니다. 이것은 나의 첫 번째 것이며, 물론 잘못된 것이 있습니다.MySql 저장 프로 시저 매개 변수에 따라 WHERE "variabilised"
기본적으로 쿼리는 동일하며 (원본은 더 복잡하고 다른 작업이 있지만) WHERE 절은 selType
매개 변수에 따라 변경됩니다. 그래서 내가하려는 것은 param 값에 따라 WHERE
절의 일종의 "가변"입니다. 이것이 올바른 접근법인지 여부 및 그럴 지 모르겠다.
DELIMITER //
CREATE PROCEDURE `testProcedure` (IN addressId INT, IN selType BOOLEAN)
BEGIN
DECLARE whereUserCriteria VARCHAR(127);
IF selType = 1 THEN
SET whereUserCriteria = CONCAT('address_id = ', addressId);
ELSE
SET whereUserCriteria = 'address_id = 1';
END IF;
SELECT whatever
FROM wherever AS ad
WHERE whereUserCriteria ;
END //
그것은 작동하지, 그것은 variabilised 아니에요 때 내가 그것을 동적으로 만들 수있는 변수를 사용하여, 그것은 가능한 한 빨리, 완벽하게 작동하지만, 볼 것이 좋다. 물론 이것은 이와 같은 경우에 최선의 방법이 무엇인지 이해하기위한 단순한 예입니다.
동적 쿼리 검사를 생성하려면 [**이 ** (http://stackoverflow.com/a/5728155/3470178) –