MySQL使用float类型精确查询结果为空

在MYSQL中,字段类型为float的字段,如果不指定float的长度和小数点位数,要根据float字段的值精确查找,结果会是空;

原因是在mysql中,float是浮点数,Mysql存储的时候是近似值,所以用精确查找无法匹配;但可以用like去匹配。

如果只用到Mysql数据库,不需要多库关联,针对小数类型的字段,可以使用decimal字段类型,decimal数据类型最多可存储 38 个数字,它存储了一个准确(精确)的数字表达法,不存储值的近似值。

也可以在创建字段时指定float的长度和小数点位数。

numeric和decimal同义,numeric将自动转成decimal。

对于Decimal(M,N)的取值范围,因为它是以串的形式存放数字,他占用的字节为M+2字节。小数点和负数各占用一个字节,所以他的理论取值范围是这样的。

decimal(2,1) 的取值范围,一共占用4字节,负数和小数点占用2字节,负数最小为-9.9,同理正数符号可以隐藏,最大的正数为99.9.