MySQL 中 'AND' 和 '&&' 的區別?


注意: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)

更新於:2019年7月30日

2K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告