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

回到顶部