今天遇到一个有趣的问题,索性写个博客。
用MySql查询时,我使用了下面的一个sql:
SELECT * from a p2 where p2.plan_code = 10000000180713140524;
这里的 plan_code 为字符类型,我为了图省事,就没加单引号,结果查询出来的数据多了几条,把不符合条件的数据也查出来了。
原来,MySql是将这一串数字在用数字运算的时候,丢失了后几位的精确度(相当于约等于,但绝不是省略截取),试了几把,最大能精确到17位。
今天遇到一个有趣的问题,索性写个博客。
用MySql查询时,我使用了下面的一个sql:
SELECT * from a p2 where p2.plan_code = 10000000180713140524;
这里的 plan_code 为字符类型,我为了图省事,就没加单引号,结果查询出来的数据多了几条,把不符合条件的数据也查出来了。
原来,MySql是将这一串数字在用数字运算的时候,丢失了后几位的精确度(相当于约等于,但绝不是省略截取),试了几把,最大能精确到17位。