MySQL中的""和0

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

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

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

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

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

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

71d06a04d7f9c9c1259b45137db180f3.png

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

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

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

52c1a9caa8d9ac02c1acf36abcfcf76d.png

近期更新的文章:

MySQL的隐式转换导致诡异现象的案例一则

MySQL中用到了索引还很慢的一个SQL场景

什么是"金砖国家"?

最近碰到的一些问题

MySQL客户端指令用法的探索

近期的热文:

推荐一篇Oracle RAC Cache Fusion的经典论文

"红警"游戏开源代码带给我们的震撼

文章分类和索引:

公众号1200篇文章分类和索引

猜你喜欢

转载自blog.csdn.net/bisal/article/details/132632577
今日推荐