由于受到版本和平台的限制,同样的SQL在不同的平台上执行的结果可能会不一致。
影响:
1. mysql在升级或迁移时可能会导致float类型的数据发生变化。
2. mysqldump创建的备份在slave上进行恢复,可能会遇到float类型的数据在master和slave上显示不一致。参考:http://dev.mysql.com/doc/refman/5.6/en/problems-with-float.html
mysql> CREATE TABLE t2(c1 FLOAT(53,0), c2 FLOAT(53,0));
mysql> INSERT INTO t2 VALUES('1e+52','-1e+52');
mysql> SELECT * FROM t2;
+----+----+
| c1 | c2 |
+----+----+
| 1 | -1 |
+----+----+1 row in set
mysql> select version();
+-------------------------+
| version() |
+-------------------------+
| 5.0.45-community-nt-log |
+-------------------------+
1 row in set
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.11 |
+-----------+
1 row in set
mysql> CREATE TABLE t2(c1 FLOAT(53,0), c2 FLOAT(53,0));
mysql> INSERT INTO t2 VALUES('1e+52','-1e+52');
mysql> SELECT * FROM t2;
+----+----+
| c1 | c2 |
+----+----+
| 0 | 0 |
+----+----+1 row in set
同样的数据类型,同样的insert语句,在不同的mysql版本中,float类型字段存储的数据不一样。