update user set money=money-0.01 where uName='701'当数据库的money的值为0.01时 无法执行 提示错误如下:
Out of range value adjusted for column 'money' at row 1当数据库的money的值为6.01时 执行下例语句就成功
update user set money=money-6.01 where uName='701'money 字段是float类型 长度为10,保留2位小数,默认0.00;请高手解答!
Out of range value adjusted for column 'money' at row 1当数据库的money的值为6.01时 执行下例语句就成功
update user set money=money-6.01 where uName='701'money 字段是float类型 长度为10,保留2位小数,默认0.00;请高手解答!
请问楼主用的是什么版本的mysql?
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| uName | char(3) | YES | | NULL | |
| money | float(10,2) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.06 sec)mysql>
mysql> select * from t_a175460677;
+-------+-------+
| uName | money |
+-------+-------+
| 701 | 0.01 |
| 701 | 6.01 |
+-------+-------+
2 rows in set (0.06 sec)mysql> update t_a175460677 set money=money-0.01 where uName='701';
Query OK, 2 rows affected (0.06 sec)
Rows matched: 2 Changed: 2 Warnings: 0mysql> select * from t_a175460677;
+-------+-------+
| uName | money |
+-------+-------+
| 701 | 0.00 |
| 701 | 6.00 |
+-------+-------+
2 rows in set (0.00 sec)mysql>
我用的是 MySQL 5.0.45(CentOS 5.2 x86_64) , 试了字段类型: FLOAT, FLOAT(10,2), FLOAT(8,2) , 都没有问题.
受影响的行: 0money=money-1
受影响的行: 1