이것은 바보 같은 질문이지만 모든 것을 읽은 후 Where 절에 대한 대체 논리를 사용하여 저장 프로 시저를 만드는 올바른 방법을 알 수 없습니다.MYSQL 저장 프로 시저 쿼리 fallback 논리
나는 다음과 같은 쿼리를 가지고 :
내가 사용하고 있거나 4 조건과 일치하는 집합을 반환 것이기 때문에SELECT FeeName, Amount, Category, VariableName
FROM client_rates WHERE state_abv = state_abvIN
AND Purchase= purchaseIN AND Category= CategoryIN And client_id=client_idIN AND
agent_id=agent_idIN AND ((lender_id=lender_idIN AND county=countyIN) OR (lender_id=lender_idIN
AND
county='NA') OR (lender_id=1 AND county=countyIN) OR (lender_id=1 AND county='NA'));
. 내가 원하는 것은 조건을 통해 "후퇴하는 것"입니다.
의미 (lender_id = lender_idIN 및 county = countyIN)가 값을 반환하는 세트를 반환합니다. 그러나 NULL 집합을 반환하면 다음 조건 집합 (lender_id = lender_idin AND county = 'NA') 등을 시도하십시오.
CASE는이 문제에 대해 작동하지 않을 것이고 중첩 된 IF EXIST 문을 사용했습니다. 그러나 각 쿼리가 두 번 실행되도록했습니다 (이보다 더 나은 솔루션이 있어야합니다).
제안 사항에 대해 도움을 주셔서 감사합니다.
지금 COALESCE를 사용하려고합니다. 좋아, 그것은 효과가있는 것처럼 보이고 올바른 해결책입니다. 이 솔루션으로 더 좋은 옵션이나 잠재적 인 함정이 있다면 나는 모두 귀입니다. – user2409721
실제적으로 합체는 대답이 아닙니다 .... 아직도 찾고 있습니다. 도움이 필요하십니까 – user2409721
FOUND_ROW() 메소드를 찾았습니다.이 메소드는 0보다 큰지 확인한 다음 로직을 따를 수 있습니다. – user2409721