update报错[Err] 1292 – Truncated incorrect DOUBLE value: ‘1111111fff‘

  • Post author:
  • Post category:其他


关于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 版权协议,转载请附上原文出处链接和本声明。