MySQL FLOAT 选择问题故障排除
尝试根据浮点值从 MySQL 表中检索行时,会出现一个常见问题:匹配值返回零行。当表中的浮点数和查询具有不同的精度时,此问题就会出现。
例如,考虑以下查询:
SELECT * FROM `table` WHERE `ident`='ident23' AND `price`='101.31';
即使表包含带有 ident= 的行'ident23'和price='101.31',由于精度不同,查询可能不匹配。为了解决这个问题,您可以将价格列转换为 DECIMAL 类型:
SELECT * FROM table WHERE CAST(price AS DECIMAL) = CAST(101.31 AS DECIMAL);
这将确保两个值以相同的精度进行比较,从而允许查询检索正确的行。
或者,您可以考虑将价格列永久更改为 DECIMAL 类型。 DECIMAL 通常是处理货币值的首选数据类型,因为它比 FLOAT 具有更高的精度。
以上是为什么我的 MySQL 查询找不到我的浮点值?的详细内容。更多信息请关注PHP中文网其他相关文章!