MySQL为什么将“ TRUE或TRUE and FALSE”评估为true?
MySQL将“ TRUE或TRUE和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 and FALSE”评估为true? 的全部内容, 来源链接: utcz.com/z/358365.html