MySQL 中 'AND' 和 '&&' 的区别是什么?
mysqlmysqli database
注意:AND 和 && 之间只有一个区别,那就是 AND 是标准语法,而 && 是所有权语法。
除了上面的语句外,AND 和 && 之间没有区别。让我们看看所有条件。
AND 和 && 的结果总是 1 或 0。我们知道 AND 和 && 都是逻辑运算符,如果有多个操作数,其中任何一个操作数的值为 0,则结果为 0,否则为 1。
以下是 AND 和 && 的演示。
情况 1(a):如果两个操作数都是 1。使用 AND。
查询如下:
mysql> select 1 AND 1 as Result;
输出结果如下:
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
情况 1(b):如果两个操作数都是 1。使用 &&。
查询如下:
mysql> select 1 && 1 as Result;
输出结果如下:
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
情况 2(a):如果任何一个操作数为 0,则结果为 0。使用 AND。
查询如下:
mysql> select 1 AND 0 as Result;
输出结果如下:
+--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
情况 2(b):如果任何一个操作数为 0,则结果为 0。使用 &&。
查询如下:
mysql> select 1 && 0 as Result;
输出结果如下:
+--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
这是 NULL 的情况。
情况 3(a):如果任何一个操作数为 NULL,则结果为 NULL。使用 AND。
查询如下:
mysql> select NULL AND 1 as Result;
输出结果如下:
+--------+ | Result | +--------+ | NULL | +--------+ 1 row in set (0.00 sec)
情况 3(b):如果任何一个操作数为 NULL,则结果也为 NULL。使用 &&。
查询如下:
mysql> select NULL && 1 as Result;
输出结果如下:
+--------+ | Result | +--------+ | NULL | +--------+ 1 row in set (0.00 sec)
注意:上面讨论的情况不仅仅取决于 1 和 0。任何非零值都将为真,这意味着如果我们对两个负数进行 AND 或 && 运算,结果将变为 1。
看看负面情况。查询如下:
mysql> select -10 AND -30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.04 sec) mysql> select -10 && -30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
在上面的语句中,如果任何一个值为 0,则 AND 和 && 的结果均为 0。查询如下:
mysql> select -10 AND 0 as Result; +--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
查看正面案例。查询如下:
mysql> select 10 AND 30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec) mysql> select 10 && 30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
其中,如果任何一个操作数变为 0,则结果也为 0。查询如下:
mysql> select 10 and 0 as Result; +--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec) mysql> select 10 && 0 as Result; +--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)