MySQL 选择查询中 AND 和 OR 运算符的优先级?
AND 在 MySQL 选择查询中比 OR 运算符的优先级更高。
让我们来看看 MySQL 如何给 AND 运算符最高优先级。
查询如下
mysql> select 0 AND 0 OR 1 as Result;
输出如下
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
如果你认为 OR 运算符的优先级更高,那么 MySQL 将对上述查询进行如下包装。
查询如下
select 0 AND (0 OR 1) as Result
首先,求解 0 OR 1,结果为 1。之后,0 和 1 将得出结果 0。
但上述情况是错误的,因为我们得到的是 0 而不是 1。因此,在上述查询中,AND 必须比 OR 优先以得到结果 1。
查询如下
select 0 AND 0 OR 1 as Result
首先,求解 AND 运算符。0 AND 0 得出结果 0。
之后,0 OR 1 得出结果 1。
现在我们得到了正确的结果。
广告