这个科学价值的问题我已经存储了该数值到mysql中“1E-06”(保存在浮点型)列MySQL中,发现在数据库
当我做了以“0.000001”这个值的搜索,我没有得到任何比赛。有任何想法吗?
SELECT *
FROM `MATCH__DESTINATION`
WHERE `W_m` = 0.000001
这个科学价值的问题我已经存储了该数值到mysql中“1E-06”(保存在浮点型)列MySQL中,发现在数据库
当我做了以“0.000001”这个值的搜索,我没有得到任何比赛。有任何想法吗?
SELECT *
FROM `MATCH__DESTINATION`
WHERE `W_m` = 0.000001
如果不在[T]的MySQL埃格尔没有检测到等于浮点数,左
浮子ALWA [Y] S更大然后右键点击。 1.1> 1.1 = true。
mysql> SELECT * FROM float_bug WHERE f=1.1; Empty set (0.00 sec)
它的浮点运算的不精确性。改为使用
DECIMAL
类型 。
尝试将匹配列和值限制为等于小数精度,然后进行比较。
SELECT *
FROM `MATCH__DESTINATION`
WHERE Cast(`W_m` as Decimal(6,6)) = Cast(0.000001 as Decimal(6,6))
你在做什么没有问题。 SELECT不返回任何结果的唯一原因是因为没有匹配。几件事情:
列W_m
是否允许浮点值高达6位小数?
你确定这个值实际存在于你的表中吗?您是否可以尝试使用任何其他WHERE谓词获取相同记录,即W_m
作为1e-06?如果没有,是否有可能做一个没有WHERE条件的SELECT *
,然后手动检查该记录是否真的存在?