Mysql 从表中检索浮点值
我在表“url\u key\u weight”中有一个float数据类型的字段。在一条记录中,浮点字段中的值为2.95。 当我从PHP代码中检索并打印它时,它会打印2.9500000476837。 但是当我从PHP运行以下查询时Mysql 从表中检索浮点值,mysql,Mysql,我在表“url\u key\u weight”中有一个float数据类型的字段。在一条记录中,浮点字段中的值为2.95。 当我从PHP代码中检索并打印它时,它会打印2.9500000476837。 但是当我从PHP运行以下查询时 "SELECT * FROM url_key_weight WHERE bid = 2.95" 或 我什么也得不到 it is not generally a good idea to compare floating point numbers with = equ
"SELECT * FROM url_key_weight WHERE bid = 2.95"
或
我什么也得不到
it is not generally a good idea to compare floating point numbers with = equals operator.
试试这个
"SELECT * FROM url_key_weight WHERE bid >= 2.95"
试试这个
"SELECT * FROM url_key_weight WHERE bid >= 2.95"
要进行直接比较,你必须四舍五入
SELECT * FROM url_key_weight WHERE ROUND(bid, 2) = 2.95
阅读更多信息。要进行直接比较,您必须四舍五入
SELECT * FROM url_key_weight WHERE ROUND(bid, 2) = 2.95
阅读更多信息。@fancyPants url\u key\u权重是表名,bid是列名。是的,出价是浮动的,试着把数字用引号括起来,看看会发生什么。您的字段类型定义为float吗?varchar可能是一种更好的方法吗?为什么要使用FLOAT呢?十进制似乎更合适。@fancyPants url\u key\u weight是表名,bid是列名。是的,出价是浮动的,试着把数字用引号括起来,看看会发生什么。您的字段类型定义为float吗?varchar可能是一种更好的方法吗?为什么要使用FLOAT呢?十进制似乎更合适。但我在bidSo中有另一个值2.96,但我在bidSo中有另一个值2.96?你也想要那一排吗?或者虽然您不想返回这一行,但它还是返回这一行吗?另外,如果您非常关心是否有正确的值,那么您应该使用decimal数据类型而不是float。那么呢?你也想要那一排吗?或者虽然您不想返回这一行,但它还是返回这一行吗?另外,如果您非常关心是否有正确的值,那么您应该使用decimal数据类型而不是float。