為什麼 MySQL 將 “TRUE or TRUE and FALSE” 評估為 true?


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)

更新於: 2019-07-30

163 次瀏覽

開啟您的 “職業生涯”

完成課程以獲得認證

開始
廣告
© . All rights reserved.