易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql奇怪的查询问题,float查询不出来

有一个表,Cindex  int userid Int, f_month float,另外两个为 字符
1853, 2152, 67.2, '2009-11-07 00:00:00', '2152'
1854, 2152, 67.2, '2009-11-07 00:00:00', '2152'

67.2 对应 字段为 float

我用查询语句 : select Cindex from  TB_app_CheckIndex where  ( F_Month = 67.2);

检索结果为空 ?

请指教


67.2 是无法准确用 8个字节以浮点数来表示的。

或者说 8个字节在计算机中无法表示所有的 1-2 之间有所以实数(小数),具体请参考 IEEE 754
所以浮点数的=比较本身就是不可靠的。一般来说浮点数可以用于>  <  的比较。

在软件设计中,如果一定要做=比较,一般是用  <一个非常小的数来实现。
SQL code
mysql> select * from t_ex3206 where abs(F_Month - 67.2) <1e-5;
+--------+---------+
| Cindex | f_month |
+--------+---------+
|      1 |    67.2 |
|      2 |    67.2 |
+--------+---------+
2 rows in set (0.00 sec)

mysql>

[Quote = #1楼  SQL77(77C#+SQL)  ]FLOAT不标准,你先查询一下所有值就看得出来了,转成VARCHAR再比较试试[/Quote]

一楼的方法也不错。

SQL code:
mysql> select * from t_ex3206 where concat(f_month,'')=67.2;
+--------+------


相关问答:

apache+PHP+mysql在win7下使用

如题,这三个在win7下使用会有什么兼容性问题吗?
由于我最近在使用win7,就懒得进xp了!
自己用windows 2008有一年多了,没出现任何问题。

win7测试版也用过,不会有什么问题的,放心。

当然你最 ......

mysql储存过程的问题

我现在学习MYSQL,问下mysql储存过程如何建立和使用,最好写成$sql="sql语句",$re=mysql_query($sql);谢谢
建议你先自己看一下文档中的例子。

http://dev.mysql.com/doc/refman/5.1/zh/stored-pro ......

mysql的驱动程序

我有一个java环境下的程序,在本机运行正常,但发布到网的虚拟主机时不能连接数据库连接池
jdk 1.6 tomcat6.0.18 mysql5 mysqljdbc5.1.5
虚拟主机的技术人员说,只能配置局域的数据库连接池,也就是在M ......

eclipse与mySQL的问题 - Java / Eclipse

在安装Java编译器的Eclipse的时候,对环境变量进行了配置,在安装MySQl的时候也要对环境变量进行配置;那么后面的配置会影响前面的Eclipse的配置吗?
请大家多指教~!谢谢!
不会把,我这都装了的 我系统里 还装了 ......

需要视频教程的新手进 php + mysql + apache 配置

这个视频讲的很详细, 对新手非常有用, 基本上一看就懂
由于太大了(50m, 我只能上传20m), 我上传不了, 只好贴出下载地址
下载地址: http://ftel1.3800hk.com/0807/080720djxnzj.rar
好东西,下个看看


......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号