Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa MySql <> NULL và IS NOT NULL?

Nếu bạn so sánh toán tử <> với giá trị NULL thì bạn sẽ nhận được giá trị NULL và không có kết quả.

Hãy để chúng tôi xem một số ví dụ để so sánh -

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)

Đầu tiên chúng ta hãy tạo một bảng -

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

Chèn một số bản ghi vào bảng bằng lệnh chèn -

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)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable846;

Điều này sẽ tạo ra kết quả sau -

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

Sau đây là kết quả cho toán tử IS NOT NULL -

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

Điều này sẽ tạo ra kết quả sau -

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

Đây là kết quả cho toán tử <>. Sau đây là truy vấn -

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