簡體   English   中英

MySql在存儲過程中的IF THEN END IF中使用OR

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM