2013-09-27 65 views
1

我有一個雙數據類型的列的表。我想通過比較double值來選擇行。如果在雙列中不存在確切值,我想要獲取包含相等或最接近/近似值的double值的行。如何在mysql中實現double數據類型的平等/近似條件?

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

列有條目到6位小數...這將如果連3個地方都可以近似的話也很棒。例如,列具有以下值 - 10.0000,10.0001,10.0010,10.0100,10.1000,如果我搜索10.0234 ...查詢應該返回10.0100,因爲它是最接近的值。 – abhijeet

回答

3

可以實現與

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

這裏1E-13意味着精密增量(你可以調整它,事業)和$值中搜索值

+0

你的答案是完美的..謝謝! – abhijeet

1

什麼是你逼近極限。假設你是幸福的+/- 0.5的誤差範圍內,你可以嘗試這樣的事:

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

您的回答非常有幫助! – abhijeet

0

使用BETWEEN關鍵字

SELECT * FROM tablename 
WHERE 
    DoubleColumnName BETWEEN "lowerBound" AND "UpperBound" 
相關問題