2016-11-03 2 views
0

나는이 MySQL의에서 다음 저장 프로 시저 .. 내가 잘못이 사용자 이름과이 절차를 테스트 할 때MySQL의 절차 조건은 occour하지 않습니다

main: BEGIN 
    DECLARE user_name VARCHAR(65); 
    DECLARE home_path VARCHAR(255); 
    DECLARE home_perm VARCHAR(10); 
    DECLARE num_posts, param_index INT(10); 

    SELECT `account`, `Posts` 
    INTO user_name, num_posts 
    FROM account_info 
    WHERE account = username_in AND password = password_in; 

    IF (user_name = NULL) OR (user_name != username_in) THEN 
    LEAVE main; 
    END IF; 

    SET home_perm = 'LRS'; 

    IF num_posts > 100 THEN 
    SET param_index = 1; 
    SET home_path = 'c:\\folder_1'; 
    ELSEIF num_posts > 200 THEN 
    SET param_index = 2; 
    SET home_path = 'c:\\folder_2'; 
    ELSE 
    SET param_index = 0; 
    SET home_path = 'c:\\folder_0'; 
    END IF; 

    SELECT home_path,home_perm,param_index; 

END 

내가 그것을하지만 내가 할 경우에도 "주를 떠나"할 여전히 LEAVE 메인에 들어 가지 않습니다.이 문제를 해결하려면 어떻게해야합니까?

답변

0

null 값이 다른 값과 같지 않으므로 두 비교가 모두 false를 반환합니다. is null 연산자 또는 <=> 연산자를 사용하여 변수를 null과 비교하십시오.

user_name IS NULL 
+0

더 나은 결과를 보았습니다. 감사합니다. – MTplus