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);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable846 values(NULL);
mysql> insert into DemoTable846 values(10);

使用select语句显示表中的所有记录-

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)