您现在的位置是:网站首页>列表内容
避坑:Sql中 in 和not in中有null值的情况说明_Mysql_
2023-05-27 07:12:55
103人已围观
简介 避坑:Sql中 in 和not in中有null值的情况说明_Mysql_
Sql中in和not in中有null值的情况
1)in的逻辑规则是or not in 的逻辑规则是 and
2)判断null 的sql语句为 is not null 或者 is null
3)当遇到 null = null 的判断是时由于不符合null的判断规则,所以结果一定为flase
1.not in 中包含null值的情况
select * from A where A.name not in (select B.name from B )
在上面的not in的查询中如果B表的name字段存在空值时,不论何种情况上述语句的查询结果一定为空
2.in 中包含null值的情况
select * from A where A.name in (select B.name from B )
在上面的 in 的查询中如果B表的name字段存在空值时,如果A表中存在name字段也存在空值,那么上述语句的查询结果中不会显示A表中的空值
mysql有默认值但是仍然插入null问题
今天发现项目中对应的某条记录某一列的值为null,但是针对这条记录这一列的值不应该为null。
检查代码发现是在插入的时候没有对这一列对应的成员变量赋值,即便数据库这一列有默认值,在插入到数据库时依然插入了null。
mysql 的默认值只有在insert语句中没有这个字段时才会生效,如果insert中有插入该字段而该字段取值又为null,null值将被插入到表中,默认值此时失效。
在mybatis开发中通常会直接插入一个表对象,表中所有字段都会插入,因此如果要设置默认值,应该在业务层写逻辑,而不能依赖mysql的default来设置默认值。
另外尽量保证对于数据库的新增应该使用动态的sql来进行操作,这样也能避免上面问题。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
点击排行

- 魔兽世界6.0万圣节坐骑宠物怎么得_6.0万圣节坐骑宠物获得方法介绍_网络游戏_游戏攻略_
- 上古世纪船只怎么改造 船只系统详细介绍_网络游戏_游戏攻略_
- 梦幻西游2014精武天神PK大赛来袭 规则奖励详解_网络游戏_游戏攻略_
- 魔兽世界6.0火法怎么玩_魔兽世界6.0火法输出心得_网络游戏_游戏攻略_
- cf新版VIP特权等级 新版CFVIP专属名片等级介绍_网络游戏_游戏攻略_
- 风暴英雄新手上分首选英雄攻略心得_风暴英雄新手强势英雄推荐一览_网络游戏_游戏攻略_
- 逆战10月21日论坛签到活动详情_逆战10月21日论坛签到活动网址介绍_网络游戏_游戏攻略_
- 斗战神新副本狮王监牢打法攻略_网络游戏_游戏攻略_
- 最终幻想142.2新版本装备修改详情_最终幻想142.2新版本装备修改介绍_网络游戏_游戏攻略_
本栏推荐

-
魔兽世界6.0万圣节坐骑宠物怎么得_6.0万圣节坐骑宠物获得方法介绍_网络游戏_游戏攻略_
-
上古世纪船只怎么改造 船只系统详细介绍_网络游戏_游戏攻略_
-
梦幻西游2014精武天神PK大赛来袭 规则奖励详解_网络游戏_游戏攻略_
-
魔兽世界6.0火法怎么玩_魔兽世界6.0火法输出心得_网络游戏_游戏攻略_
-
cf新版VIP特权等级 新版CFVIP专属名片等级介绍_网络游戏_游戏攻略_
-
风暴英雄新手上分首选英雄攻略心得_风暴英雄新手强势英雄推荐一览_网络游戏_游戏攻略_
-
逆战10月21日论坛签到活动详情_逆战10月21日论坛签到活动网址介绍_网络游戏_游戏攻略_
-
斗战神新副本狮王监牢打法攻略_网络游戏_游戏攻略_
-
最终幻想142.2新版本装备修改详情_最终幻想142.2新版本装备修改介绍_网络游戏_游戏攻略_