mysql update 或者 insert时报错:
Truncated incorrect DOUBLE value “XXXX”
分析:当select时正常的,因为将一个varchar类型的字段数据使用一些如SIGN()函数,或者±*/,去做一些运算的时,mysql会截断使用字段中的数字进行运算,所以在修改时这个截断操作是不允许的所以会报这个错
例子:
字段field 类型:varchar 值:23天
-- 查询不报错
select * from table1 where SIGN(field) >0;
-- 修改报错:Truncated incorrect DOUBLE value “23天”
update table1 set field=“24天” where SIGN(field) >0;
或者
select field-1 from table1 limit 1;
-- 修改报错:Truncated incorrect DOUBLE value “23天”
update table1 set field=concat(field-1,'天');