记一次采坑 数据库明明有一条数据,但因查询条件有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(字段名)= 浮点值
|