MySQL <> NULL 和 IS NOT NULL 之間的差異?


如果將 <> 運算子與 NULL 值進行比較,你將始終獲得 NULL 值,並且沒有結果。

讓我們看一些比較示例 −

mysql> select 10 <> NULL;
+------------+
| 10 <> NULL |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)
mysql> select NULL <> NULL;
+--------------+
| NULL <> NULL |
+--------------+
| NULL         |
+--------------+
1 row in set (0.00 sec)
mysql> select 'Chris' <> NULL;
+-----------------+
| 'Chris' <> NULL |
+-----------------+
| NULL            |
+-----------------+
1 row in set (0.00 sec)
mysql> select '' <> NULL;
+------------+
| '' <> NULL |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)

讓我們先建立一個表 −

mysql> create table DemoTable846(Value int);
Query OK, 0 rows affected (0.93 sec)

使用插入命令在表中插入一些記錄 −

mysql> insert into DemoTable846 values(NULL);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable846 values(10);
Query OK, 1 row affected (0.11 sec)

使用選擇語句從表中顯示所有記錄 −

mysql> select *from DemoTable846;

這將產生以下輸出 −

+-------+
| Value |
+-------+
| NULL  |
| 10    |
+-------+
2 rows in set (0.00 sec)

以下是對 IS NOT NULL 運算子的結果 −

mysql> select *from DemoTable846 where Value IS NOT NULL;

這將產生以下輸出 −

+-------+
| Value |
+-------+
| 10    |
+-------+
1 row in set (0.00 sec)

以下是對 <> 運算子的結果。以下是對查詢 −

mysql> select *from DemoTable846 where Value <> NULL;
Empty set (0.00 sec)

更新於: 03-Jul-2020

222 瀏覽次數

啟動你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.