2016-11-03 5 views
0

происходить подавление у меня есть следующая хранимая процедура в 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 main, что я могу сделать, чтобы исправить это?

ответ

0

null Значение не равно никому, поэтому оба сравнения вернут false. Используйте либо оператор is null, либо оператор <=>, чтобы сравнить переменную с нулем.

user_name IS NULL 
+0

Это сработало лучше, спасибо! – MTplus

Смежные вопросы