Mysql-解决Truncated incorrect DOUBLE value xxx

曾经终败给现在 2023-10-02 23:27 19阅读 0赞

问题

出现这种问题一般来说就是多表操作的时候, 使用的字段类型不一致导致的(查询除外),我们来看下真实案例
在这里插入图片描述
hd_user表中parentId是binint类型 而在hd_user_increment_copy1`表中parentId是varchar类型, 如果只是查询的话那么是不会报错的,我把查询sql提出了运行是可以的
在这里插入图片描述

是不是就无语了,为啥查询里可以,那么在update中就不行 ,研究了半天我也没搞懂只能推给mysql查询内部进行优化了在比对数据时候都转换为字符串进行比较,但是一旦掺杂增删改那么就不会进行类型自动转换为字符串,而是使用原始类型进行比较, 然后在比较的时候发现类型不一致进行报错了

解决办法

解决方案是将数据类型都转换为一样的即可
在这里插入图片描述
通过上面的启发,我又试了试插入,将查询出来的数据插入到一个相同结构的空表里,发现还是上面的问题
在这里插入图片描述
解决办法一样,加上数据类型转换即可
在这里插入图片描述

在这里插入图片描述

点赞 -收藏-关注-便于以后复习和收到最新内容有其他问题在评论区讨论-或者私信我-收到会在第一时间回复在本博客学习的技术不得以任何方式直接或者间接的从事违反中华人民共和国法律,内容仅供学习、交流与参考 免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我、以迅速采取适当措施,避免给双方造成不必要的经济损失。感谢,配合,希望我的努力对你有帮助^_^

发表评论

表情:
评论列表 (有 0 条评论,19人围观)

还没有评论,来说两句吧...

相关阅读