MySQL问题:无法修改FLOAT类型字段的值求助
问题分析与解决
核心问题:表名不匹配
你的表结构定义的表名是tbl_inventory_stock,但执行的UPDATE语句中写的是tbl_inventory_store,这是完全不同的两张表,SQL找不到要更新的目标表,因此返回“0 row affected”。修正后的SQL语句应为:
UPDATE `tbl_inventory_stock` SET `inventory_stok` = 2382979 WHERE `tbl_inventory_stock`.`id` = 622;注意:无需给数值加单引号,字段类型为FLOAT,直接使用数值更规范。
潜在的FLOAT精度问题(若表名修正后仍有异常)
FLOAT属于近似数值类型,存储较大整数时可能存在精度丢失,你在phpMyAdmin中看到的2382980可能只是四舍五入后的显示值,实际存储的是接近但不完全等于该值的近似值。不过你用主键id=622作为WHERE条件,属于精准匹配,只要表名正确就能定位到目标行。如果后续仍遇到浮点数值更新异常,建议将inventory_stok字段类型改为DECIMAL,这类类型更适合存储库存数量这类需要精确计算的数值。
内容的提问来源于stack exchange,提问作者Henry Gunawan
相关产品推荐
相关产品推荐

