mysql在比较时没有拉取正确的结果如果float a< =float b,则可能是不正确的舍入

fafcakar  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(210)

我在从一些表中提取数据时遇到了问题。应返回以下信息的查询:

SELECT   *
FROM     tableone a,
         tabletwo b
WHERE    (a.RateCurrency = 'U')
AND      (a.EffectiveDate <= '2016-10-05')
AND      (a.ExpiryDate >= '2016-10-05')
AND      (a.TestOrProd = 'P')
AND      (a.TableKey = b.TableKey)
AND      (b.Min <= 2.39)
AND      (b.Max >= 2.39)

问题出在b.min身上。在tabletwo中,最小值是2.39,出于某种原因mysql没有得到2.39<=2.39。如果我在查询中将2.39改为2.4,它就会拉取结果,如果我进入tabletwo并将min值改为2.3899,它也会拉取结果。
mysql中是否存在某种我不知道的浮点舍入行为(min的数据类型是float)
另外,我不知道这是否有区别,但我们以前使用的是普及型数据库,刚刚转移到mysql…这个问题也发生在普及型数据库中,那么这两者之间有共同的问题吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题