3 개의 매개 변수를받는 MySQL을 호출하는 저장 프로 시저가 있습니다. 그 중 하나는 null 일 수 있습니다. 이제, 그들이 null 인 경우, 열린 쿼리 (Where 문없이)를 실행해야하며, 그렇지 않은 경우, 수신 한 값으로 제약 조건을 적용해야합니다. 나는 당신에게 여기 내 코드 제공,쿼리를 저장 프로 시저에 편집
DELIMITER ;;
CREATE PROCEDURE `getPeople`(
IN p_startDate DATE,
IN p_endDate DATE,
IN p_name TEXT
)
BEGIN
SELECT * FROM people;
-- if p_startDate is not null, 'append' to the query "WHERE birthdate >= p_startDate"
-- if p_endDate is not null, 'append' to the query "WHERE birthdate <= p_endDate"
-- if p_name is not null, 'append' to the query "WHERE name = p_name"
END;;
DELIMITER ;
내 첫 번째 방법은 3 개 가지 다른 쿼리를 작성한다)를,하지만 난 예를 (혼합 할 수 없습니다 : p_startDate 및 p_endDate 널 난 그냥 한 쿼리를 실행하지) . 나 좀 불을 붙일 수 있니?
감사합니다.
SQL Syntax for Prepared Statements
:
완료되었습니다. SET 및 CONCAT을 사용하면 내 위치 제한을 추가 할 수 있습니다. – jdlcgarcia