我有一个表(比如 table1 ),其中一个数据类型为float(比如 field1 )。此字段中的值都是唯一的,最多8个小数位。
我在这张桌子上执行了以下查询:
SELECT COUNT(*) FROM table1;
结果是查询的总记录数:5179
SELECT COUNT(DISTINCT(field1)) FROM table1;
结果再次与总记录的结果相同:5179
以上两个结果显示字段“ field1 ”中的值是唯一的。
但是当我在这张桌子上运行以下查询时:
SELECT * FROM table1;
并且
SELECT field1 FROM table1;
两个查询都会为结果提供 field1 中的值,并将其缩小到5位小数。其中显示大多数值相同。
这是因为数据类型 float 。
那么为什么DISTINCT()函数获取实际存储的值而不是舍入。
编辑:
四舍五入的值仅为> 1. for< 0值,它完美无缺。