关于mysql的update语句报错1292
在我们执行mysql的update语句的时候,突然会蹦出来[Err] 1292 – Truncated incorrect DOUBLE value: ‘1111111fff’的报错,网上各种解惑,但是哪种是真正适合自己的解决办法?仔细查看表结构!
在我们执行update语句之前,我们常规操作就是先select一下,看是否会成功。但是在们执行select语句还是成功的时,update语句依旧会报错[Err] 1292 – Truncated incorrect DOUBLE value: ‘1111111fff’
这种报错是因为mysql列的类型错误引起的(个人出现),因为要更新的字段为varchar类型,而我的update语句使用的int型,所以才会出现问题1292
select * from player where sid = 12345(sid 为varchar类型)可执行
update player set 某字段 = *** where sid = 12345,就会报错1292
这是因为mysql的查询为弱类型的,即sid为varchar类型,但是通过int型仍可以查询,也一样可以查询出结果
但是,update语句为强类型,即所使用的条件必须是一一对应的才可以执行,所以sid=‘12345’才可以执行。
此外,我们设置column的类型为int型,但是default值依然可以为‘0’一个varchar或char类型的,并不会引起冲突
版权声明:本文为weixin_43668899原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。