最简单的mysql。但我无法做到。 Where子句不起作用

时间:2017-03-09 16:24:48

标签: mysql

当我Select * from tempF;

时,这是我的表格
| Timestamp | CurrentF | RecordMinF | RecordMaxF |
+-----------+----------+------------+------------+
| 21:12:53  |    69.23 |       NULL |       NULL |
| 21:15:53  |     67.9 |       NULL |       NULL |
| 21:16:02  |    68.08 |       NULL |       NULL |
| 21:16:08  |    68.08 |       NULL |       NULL |
| 21:16:14  |    68.08 |       NULL |       NULL |
| 22:37:56  |    68.98 |       NULL |       NULL |
| 22:38:08  |    69.16 |       NULL |       NULL |
| 22:38:14  |    69.34 |       NULL |       NULL |
| 22:38:15  |    69.16 |       NULL |       NULL |
| 22:38:32  |    69.34 |       NULL |       NULL |

我从MSSQL切换到MySQL,所以也许我错过了什么。我想做的就是:select * from tempF where CurrentF = 67.9;

它表示它返回一个空集但显然在表中,CurrentF列中有一行数字为67.9

2 个答案:

答案 0 :(得分:1)

从tempF中选择*,其中CurrentF = '67 .9'; 肯定会工作..

答案 1 :(得分:1)

刚从另一个StackOverflow帖子中看出来:

mysql float data not selecting in where clause

以下是我看到的最佳答案:

  

今天,我也遇到了同样的情况,并得到了解决   使用MySQL的FORMAT函数,它将返回结果   与WHERE子句完全匹配。

     

SELECT * FROM yourtable WHERE FORMAT(col,2) = FORMAT(value,2)

     

说明:

     

FORMAT('col name',precision of floating point number)

     

希望它有所帮助。

所以为了回答我的问题,我不得不写这样的查询:

Select * from tempF where format(CurrentF,2) = format(67.9,2);