我有一个名为MAXT的表列,其中包含负和正浮点值。该列类型为float
。我的问题是,当我在更新查询中使用此列时,它没有任何效果。例如,
UPDATE TABLE1 SET MAXTCLASS='A9' WHERE MAXT = 2.5; is running successfully. But
UPDATE TABLE1 SET MAXTCLASS='A9' WHERE MAXT = -2.5;
既没有更新也没有显示任何错误的值。请帮忙。
提前感谢。
对于测试,我已经创建了示例表,并且测试工作正常。它在Mysql Server版本中更新:5.1.60
desc X11;
| Field | Type | Null | Key | Default | Extra |
| d1 | float | YES | | NULL | |
| id | int(11) | YES | | NULL | |
2 rows in set (0.00 sec)
update X11 set id = 4 where d1 =-2.5;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from X11;
+------+------+
| d1 | id |
+------+------+
| 2.5 | 1 |
| -2.5 | 4 |
+------+------+
2 rows in set (0.00 sec)
它也适用于我使用的版本(适用于2.5和-2.5)
感谢大家的回复。我不知道为什么其他DB支持查询。但现在,通过将字段类型float改为decimal,这个问题已经得到了解决。
如果要更改的数据字段没有标记为"unsigned",请检查表结构。
如果是,请更改数据类型,删除结构中的此选项。