MySQL將「TRUE or TRUE and FALSE」評估為true,因為AND比OR有更高的優先權,即AND在OR之前被評估。
MySQL依照以下方式評估上述語句。首先評估AND運算子 −
(TRUE or (TRUE AND FALSE))
語句 (TRUE AND FALSE) 的結果是 FALSE。然後是第二個語句 評估如下 -
(TRUE or FALSE)
上面的語句給出的結果為 TRUE。
讓我們一一實作-
mysql> select (TRUE AND FALSE); +------------------+ | (TRUE AND FALSE) | +------------------+ | 0 | +------------------+ 1 row in set (0.00 sec)
現在我們可以將上述結果放在AND條件的位置−
mysql> select (TRUE or FALSE); +-----------------+ | (TRUE or FALSE) | +-----------------+ | 1 | +-----------------+ 1 row in set (0.00 sec)
現在再次檢查整個條件−
mysql> select (TRUE or TRUE and FALSE);
這將產生以下輸出−
+--------------------------+ | (TRUE or TRUE and FALSE) | +--------------------------+ | 1 | +--------------------------+ 1 row in set (0.00 sec)
以上是為什麼 MySQL 將「TRUE 或 TRUE 和 FALSE」評估為 true?的詳細內容。更多資訊請關注PHP中文網其他相關文章!