发现一个奇怪的问题啊!
有一个tab数据如下啊table name: tabAid(pk) filed1(varchar)
1 1
2
3 2
4 null然后执行sqlselect * from tabA where filed1 <> '12345'第二条记录竟然没有返回,只返回下面的~难道“空” 等于’12345‘?
id(pk) filed1(varchar)
1 1
3 2
4 null
有一个tab数据如下啊table name: tabAid(pk) filed1(varchar)
1 1
2
3 2
4 null然后执行sqlselect * from tabA where filed1 <> '12345'第二条记录竟然没有返回,只返回下面的~难道“空” 等于’12345‘?
id(pk) filed1(varchar)
1 1
3 2
4 null
select * from tabA where filed1 <> '12345'结果是:
id(pk) filed1(varchar)
1 1
3 2
4 null我不太明白为啥啊?
NULL与任何值比较或做数学运算,除非使用IS NULL或IS NOT NULL,否则都为UNKNOWN,当然查不出来啦,你改为
select * from tabA where filed1 <> '12345' OR filed1 IS NULL;
而你第4条null是字符值填的'null'吧
filed1 的值为null 不在is null的条件内