為什麼 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)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP