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(