[英]MySql using OR in an IF THEN END IF inside a stored procedure
如何在MySql存儲過程中的IF THEN ELSE END IF
使用OR
?
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
錯誤。 我該如何正確處理?
那是因為您想要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;
嘗試將您的“或”更改為“與”
當前,您的查詢將始終提供UserKey = false,因為MakeKey始終不是這些值之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.