Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从表中检索浮点值_Mysql - Fatal编程技术网

Mysql 从表中检索浮点值

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

我在表“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 = 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。