MySQL - IS NOT NULL 和 != NULL 的区别?

Posted Lux_Sun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL - IS NOT NULL 和 != NULL 的区别?相关的知识,希望对你有一定的参考价值。

mysql中,筛选非空的时候经常会用到 is not null 和 !=null(或<>null),这两种方法单从字面上来看感觉是差不多的,其实如果去运行一下试试的话差别会很大!

在SQL中,NULL是一种特有的数据类型,其等价于没知有任何值、是未知数。NULL与0、空道字符串、空格都不同。SQL默认情况下对WHERE XX!= Null的判断会永远返回0行,却不会提示语法错误。

非ANSI SQL标准中data=NULL等同于data IS NULL,data<>NULL等同于data IS NOT NULL。

所以默认情况下做比较条件时使用关键字“is null”和“is not null”。


为什么会出现这种情况呢?

null 表示什么也不是, 不能=、>、< … 所有的判断,结果都是false,所有只能用 is null进行判断。

默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对 != Null 的判断会永远返回 0 行,但没有语法错误。

如果你一定想要使用 != Null 来判断,需要加上这个语句:

SET ANSI_NULLS off

这时你会发现 IS NOT NULL 和 != null 是等效的。

以上是关于MySQL - IS NOT NULL 和 != NULL 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj

解决Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj

解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj

解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj

解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj(