0
点赞
收藏
分享

微信扫一扫

MySQL中的""和0


《MySQL的隐式转换导致诡异现象的案例一则》文章中原始有段写的是,

上述例子中 "测试a" 会截成 "",因此 a=0 ,才会返回字段不为空的。

有朋友留言说,这个确定正确吗?"测试a"应该转成0吧,而不是""?

我认为这块写得有些模糊了,但是结论没错。

因为数据类型的问题,"测试a"会转成数值类型,MySQL自动截断,应该截成的是""(空),只是说""和0是相等的,通过CAST可以验证下,"测试a"和''(空)转换成数值类型都是0,

select cast('测试a' AS UNSIGNED), CAST('' AS UNSIGNED);

MySQL中的""和0_mysql

如果准确些,应该说的是"测试a"自动截成""(空),""和0是相等的,因此得到"a=0"。

做技术,还是得严谨一些。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"



举报

相关推荐

0 条评论