2016-11-03 2 views
0

をoccourていません。..MySQLの手続き条件は、私はMySQLで次のストアドプロシージャを持っている

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」にしたいが、私はやる場合でも、それでもLEAVEメインには入りませんが、これを修正するにはどうしたらいいですか?

答えて

0

nullの値が何かに等しくないため、両方の比較がfalseを返します。 is null演算子または<=>演算子のいずれかを使用して、変数をNULLと比較します。

user_name IS NULL 
+0

これはうまくいった、ありがとう! – MTplus

関連する問題