今天做定时任务,需要用到一个mysql查询
于是我就写: sqlcondition=" and fplsh!=null and iskp='2'"
却发现发挥的list为空
很是诧异
于是我把SQL语句放到navicate中执行,发现一条数据也查不到
很是苦闷,不应该啊,明明有数据
于是我看到!=null看着有点不顺眼啊,我改成 is not null
找到了,根据条件因素的唯一变化原理,我很明智的判断出了是is not 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”。
希望对你有所帮助