为什么 MySQL 会将"TRUE 或 TRUE 和 FALSE"求值为 true?

mysqlmysqli database更新于 2025/9/4 5:00:17

MySQL 将 “TRUE 或 TRUE 和 FALSE” 求值为 true,因为 AND 的优先级高于 OR,即 AND 在 OR 之前求值。

MySQL 会这样求值上述语句。AND 运算符首先求值 −

(TRUE 或 (TRUE AND FALSE))

语句 (TRUE AND FALSE) 给出结果 FALSE。然后第二个语句求值如下 −

(TRUE 或 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)

相关文章


有用资源