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)
以下是ISNOTNULL运算符的结果-
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)