MYSQL数据库中使用float类型精确查询时结果为空问题

发布:2013-09-03 16:23   点击674次   评论:0

http://awtqty-zhang.iteye.com/blog/1012592
MYSQL数据库中使用float类型精确查询时结果为空问题

问题描述:
表A中RechargeAmount字段为float(10,2)类型,当根据此字段的值进行精确查询时,按照平常习惯使用SQL语句为:
SELECT * FROM `T_OMC_COMPANY_RECHARGE` where RechargeAmount = 20000.12;
但查询的结果为空(但数据库中是有此值的)。
但当查询值没有小数时,可以查出记录,如:where RechargeAmount = 20000;
 
解决办法:
根据在网上查找结果,可有两种方法解决此问题:

1、mysql   float类型有小数位的话查询不能用‘=’匹配, double类型就没问题,但用like是可以的,结果如下:
  SELECT * FROM `T_OMC_COMPANY_RECHARGE` where RechargeAmount like 20000.12;
2、使用format()函数,结果如下:
  SELECT * FROM `T_OMC_COMPANY_RECHARGE` where format(RechargeAmount,2) = format( 20000.12,2);

关于 GitHub 导航 部门 反馈

提示:`/home.php`入口数据仅为演示功能,不构成任何交易凭证,也不承担相关风险和责任!

Copyright © 2011-2018 xxxxx.com All rights reserved.

Run:2.623/29.292(ms); 7(sql)/2.877(MB); comm:news/detail; Upd:2025-01-11 10:52:05