거의 동일해 보이는 프로그램이 두 개 있습니다. 한 사람은 위치 및 가격을 받아 작업을 수행하고, 다른 사람은 경험 및 가격을 받습니다. < /p>
첫 번째:
두 번째:
보시다시피 WHERE 절만 변경되었습니다. MySQL에서는 이 두 프로시저를 하나로 통합할 수 있습니까? 왜냐면 똑같아 보이지만 그냥 바뀔 뿐인 프로그램이 5개 정도 있으니까요 WHERE 절이 있는데, 케이스별로 따로 프로세스를 진행하는 게 귀찮더라구요.
IFNULL을 사용할 수 있습니다. experience 或 id_location 值并使用 NULL를 다른 값으로 전달하세요.
experience
id_location
NULL
매개변수가 열 이름과 다르도록 매개변수에 대한 명명 체계(여기서는 in_-접두사)를 갖는 것도 좋은 습관입니다.
in_
예를 들어 다음을 사용할 수 있습니다.
제공된 경우 IN 经验 INT 设置为某个值,则应用它的条件。如果您为此参数提供 NULL,则应用 IN id_location INT 조건.
IN 经验 INT
IN id_location INT
참고 - 이제 SP에는 4개가 아닌 5개의 매개변수가 있습니다.
PPS. 유사한 접근 방식을 사용하여 조건 중 하나, 둘 다를 적용하거나 둘 다 적용하지 않는 SP를 생성할 수 있습니다. 예를 들면 다음과 같습니다.
구매력 평가. 2개의 별도 함수를 갖고 싶지만 코드 복사본이 있는 경우(예를 들어 이러한 함수 이름은 이미 여러 코드에서 사용됨) 다음을 수행할 수 있습니다.
IFNULL을 사용할 수 있습니다.
experience
或id_location
值并使用NULL
를 다른 값으로 전달하세요.매개변수가 열 이름과 다르도록 매개변수에 대한 명명 체계(여기서는
으아악in_
-접두사)를 갖는 것도 좋은 습관입니다.예를 들어 다음을 사용할 수 있습니다.
으아악제공된 경우
IN 经验 INT
设置为某个值,则应用它的条件。如果您为此参数提供 NULL,则应用IN id_location INT
조건.참고 - 이제 SP에는 4개가 아닌 5개의 매개변수가 있습니다.
추신. SP에는 단일 SQL 문이 포함되어 있으므로 BEGIN-END 및 DELIMITER가 필요하지 않습니다.PPS. 유사한 접근 방식을 사용하여 조건 중 하나, 둘 다를 적용하거나 둘 다 적용하지 않는 SP를 생성할 수 있습니다. 예를 들면 다음과 같습니다.
으아악구매력 평가. 2개의 별도 함수를 갖고 싶지만 코드 복사본이 있는 경우(예를 들어 이러한 함수 이름은 이미 여러 코드에서 사용됨) 다음을 수행할 수 있습니다.
으아악