0
点赞
收藏
分享

微信扫一扫

mysql查询条件为float类型数据(查不到数据)

杰森wang 2022-03-11 阅读 85

记一次采坑
数据库明明有一条数据,但因查询条件有float类型数据并带有小数 导致查询不出来

数据为:

查询结果为:

猜测原因是查询时精度导致的。。没细查原因

直接上解决办法:

SELECT
COUNT(1)
FROM
yh_coal_price_futures
WHERE
(
time = '2022-03-02 00:00:00'
AND NAME = '动力煤'
AND price_type = '结算价'
-- AND current_price= 832.8
AND CONCAT(current_price,'')= 832.8
)

 或者

SELECT
COUNT(1)
FROM
yh_coal_price_futures
WHERE
(
time = '2022-03-02 00:00:00'
AND NAME = '动力煤'
AND price_type = '结算价'
-- AND current_price= 832.8
-- AND CONCAT(current_price,'')= 832.8
AND LTRIM(current_price)= 832.8
)

注意:

以上查不出数据也是特殊情况比如数据虽然是float类型 但小数点后为0常规查询也是可以查询到的

例如:

 

结论:

 不是所有的float类型查询都会有问题,但是为了保险起见 还是做下类型转换
CONCAT(字段名,'')= 浮点值


LTRIM(字段名)= 浮点值

举报

相关推荐

0 条评论