当前位置: 代码网 > it编程>数据库>Mysql > mysql字段为null为何不能使用!=

mysql字段为null为何不能使用!=

2024年05月26日 Mysql 我要评论
mysql字段为null不能使用!=数据库表中某一字段(mark)默认值为null,进行where语句查询时mark!=‘xxxx’,并不能将字段为null的数据查询出来。1、

mysql字段为null不能使用!=

数据库表中某一字段(mark)默认值为null,进行where语句查询时mark!=‘xxxx’,并不能将字段为null的数据查询出来。

1、mysql中空值不占空间,null值占空间。

2、当使用 is not null 或者 is null 时,只能查出字段中没有不为null的或者为 null 的,不能查出空值。

3、判断null 用is null 或者 is not null,判断空字符用 =’‘或者<>’'来进行处理。

4、在进行count()统计某列的记录数的时候,如果采用的null值,会被系统自动忽略掉,但是空值是会进行统计到其中的。

5、mysql中如果某一列中含有null,那么包含该列的索引就无效了。这一句不是很准确。(???)

6、对于mysql特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入null值,则出现的值是当前系统时间。插入空值,则会出现 0000-00-00 00:00:00

7、null值到非null的更新无法做到原地更新,更容易发生索引分 裂,从而影响性能。(???)

如果想查出字段为null的数据,可以使用:

select * from a where b1 != 1 or b1 is null
select * from a where ifnull(b1,'') != 1

set ansi_nulls off,这时你会发现is not null 和 != null 是等效的

mysql语句“!=“使用注意事项

当我们使用mysql的!=的时候,要注意一点的是!=只会筛选该字段非空的数据,如果查询的表中有字段为null,这些数据都不会被查询出来,即时他!=某个数据

例如:

select * from test where type != 2

test表中  type 存在  1 ,2,null

那么该查询语句只会筛选出type为1的数据,即使 null也不等于2

建议使用:

select * from test where (type != 2 or type is null)

或者

select * from test where ifnull(type,"")!= 2

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com