首页 新闻 会员 周边 捐助

mysql 字段类型从bit改成tinyint后,将值更新成2,但是读取出来的却是True

0
悬赏园豆:10 [已解决问题] 解决于 2022-09-06 16:00

今天遇见一个诡异的现象,
我的一个表中的一个字段之前是bit类型,后来发现不够用,就改成tinyint了,然后我的某个业务逻辑将这个字段的某条数据的值改成了2,用Navicat看数据库中确实也变更成2了,但是当我用ADO.Net读取mysql的数据将该字段读取的数值转成byte时,发现本该是2的值却都是1,代码没问题,Navicat看表中的数据确实是2也没有问题,但是就是读取的数据有问题,简直是活见鬼了,后来逐步调试,我将该字段的值直接输出成了字符串,发现本该为2的输出的确实True。。。真是奇怪了,mysql我明明改成tinyint了啊,为什么还是True,后来我发现,mysql中该列的tinyint的长度是1,而别的tinyint则是4,这可能是之前从bit改成tinyint的时候我没有一起更改,我就将长度1改成了4,结果就正常了,我记得mysql中数字类型的长度应该是数字的位数,当值为2时,长度是1还是4应该没影响吧,为什么从bit改的tinyint的长度为1就不能读取正常的值,而改成4就正常了啊

WmW的主页 WmW | 菜鸟二级 | 园豆:424
提问于:2022-09-06 11:24
< >
分享
最佳答案
0
收获园豆:10
〆灬丶 | 老鸟四级 |园豆:2307 | 2022-09-06 13:36

感谢

WmW | 园豆:424 (菜鸟二级) | 2022-09-06 16:00
其他回答(1)
0

tinyint 1 当bool 处理的

小小高 | 园豆:1297 (小虾三级) | 2022-09-06 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册