如何在mysql中实现双数据类型的相等/近似条件?

如何在mysql中实现双数据类型的相等/近似条件?,mysql,database,Mysql,Database,我有一个表,其中一列是双数据类型。我想通过比较double值来选择行。如果double列中不存在确切的值,我希望获取包含等于或最接近/近似的double值的行 select * from tablename where DoubleColumnName equal/approx "some double value" 你可以通过 SELECT * FROM tablename WHERE ABS(DoubleColumnName-$value)<1E-13 这里1E-13表示可以调

我有一个表,其中一列是双数据类型。我想通过比较double值来选择行。如果double列中不存在确切的值,我希望获取包含等于或最接近/近似的double值的行

select * 
from tablename 
where DoubleColumnName equal/approx "some double value"

你可以通过

SELECT * FROM tablename WHERE ABS(DoubleColumnName-$value)<1E-13

这里1E-13表示可以调整的精度增量,当然,$value是搜索值

您可以使用

SELECT * FROM tablename WHERE ABS(DoubleColumnName-$value)<1E-13

这里1E-13表示您可以调整的精度增量,当然,$value是搜索值

您的近似极限是多少。假设您对+/-0.5的误差范围感到满意,您可以尝试以下方法:

select * from table where (double_value_from_database - SOME_DOUBLE_VALUE) < 0.5

你的近似极限是多少。假设您对+/-0.5的误差范围感到满意,您可以尝试以下方法:

select * from table where (double_value_from_database - SOME_DOUBLE_VALUE) < 0.5
使用关键字

使用关键字


列中有6位小数的条目…如果3位都是近似值,那就太好了。例如,列具有以下值-10.0000、10.0001、10.0010、10.0100、10.1000,如果我搜索10.0234…查询应返回10.0100,因为它是最接近的值。列具有小数点后6位的条目…如果3位都是近似值,那就太好了。例如,列具有以下值-10.0000、10.0001、10.0010、10.0100、10.1000,如果我搜索10.0234…查询应返回10.0100,因为它是最接近的值。您的答案非常有用!!你的回答很有帮助!!