mysql查询条件为float类型数据(查不到数据)
记一次采坑数据库明明有一条数据,但因查询条件有float类型数据并带有小数 导致查询不出来数据为:查询结果为:猜测原因是查询时精度导致的。。没细查原因直接上解决办法:SELECTCOUNT(1)FROMyh_coal_price_futuresWHERE(time = '2022-03-02 00:00:00'AND NAME = '动力煤'AND price_type = '结算价'--AND
·
记一次采坑
数据库明明有一条数据,但因查询条件有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(字段名)= 浮点值

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)