为什么 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)
相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/

