我有一個雙數據類型的列的表。我想通過比較double值來選擇行。如果在雙列中不存在確切值,我想要獲取包含相等或最接近/近似值的double值的行。如何在mysql中實現double數據類型的平等/近似條件?
select *
from tablename
where DoubleColumnName equal/approx "some double value"
我有一個雙數據類型的列的表。我想通過比較double值來選擇行。如果在雙列中不存在確切值,我想要獲取包含相等或最接近/近似值的double值的行。如何在mysql中實現double數據類型的平等/近似條件?
select *
from tablename
where DoubleColumnName equal/approx "some double value"
可以實現與
SELECT * FROM tablename WHERE ABS(DoubleColumnName-$value)<1E-13
這裏1E-13
意味着精密增量(你可以調整它,事業)和$值中搜索值
你的答案是完美的..謝謝! – abhijeet
什麼是你逼近極限。假設你是幸福的+/- 0.5的誤差範圍內,你可以嘗試這樣的事:
select * from table where (double_value_from_database - SOME_DOUBLE_VALUE) < 0.5
您的回答非常有幫助! – abhijeet
使用BETWEEN關鍵字
SELECT * FROM tablename
WHERE
DoubleColumnName BETWEEN "lowerBound" AND "UpperBound"
列有條目到6位小數...這將如果連3個地方都可以近似的話也很棒。例如,列具有以下值 - 10.0000,10.0001,10.0010,10.0100,10.1000,如果我搜索10.0234 ...查詢應該返回10.0100,因爲它是最接近的值。 – abhijeet