OR
如何在MySql存储过程中使用IF THEN ELSE END IF
?
DECLARE userKey BOOL;
SET userKey = True;
IF makeKey != 'open' or makeKey != 'mask' THEN
SET userKey = False;
END IF;
IF (makeKey != 'open') or (makeKey != 'mask') THEN
SET userKey = False;
END IF;
IF (makeKey != 'open') || (makeKey != 'mask') THEN
SET userKey = False;
END IF;
Note: Not all the above are used together.
上述三项都不奏效。他们不会抛出错误,只是评估为假。
存储过程与通常myProc('open')
一样调用;我OR
出了问题。我该如何做到正确?
答案 0 :(得分:1)
这是因为您需要AND
,而不是OR
:
IF makeKey != 'open' AND makeKey != 'mask' THEN
SET userKey = False;
END IF;
OR
永远都是真的。例如,如果makekey = 'open'
,则肯定不等于'mask'
。
这更容易写成:
IF makeKey NOT IN ('open', 'mask') THEN
SET userKey = False;
END IF;
答案 1 :(得分:1)
尝试将您的"或"更改为"和" s
目前,您的查询将始终提供UserKey = false,因为MakeKey始终不是其中一个值。