2017-10-09 89 views
0

我想查找數據庫中與用戶在php中輸入內容最近的數字匹配。數據庫值可以用一個整數倍數來找到用戶輸入的近值。數據庫表中最接近的值

對於防爆: 數據庫具有以下托盤:

950, 900, 1070 

用戶輸入一個值:2000

不是系統應該檢查:

950 * 2 = 1900 
900 *2 = 1800 
1070 * 2 = 2140 

所以最接近值2000是1900年。任何幫助將不勝感激。

+1

的可能的複製[如何從在mysql數據庫中最接近的值(https://stackoverflow.com/questions/7269243/how-to-get-nearest-value-from-database- in-mysql) –

回答

1

試試此查詢,也用用戶輸入替換2000。

SELECT your_column, abs(2000 MOD your_column)) as diff 
FROM `mytable` 
ORDER BY diff 
LIMIT 1 
+0

但是數字2可能是變量,即它可以是3等。 –

+0

答案更新。 – tan

+0

嗨@tan,感謝您的查詢。它解決了我的問題。 –

0
SELECT your_column, abs($_POST['form_field_name']-(your_column*2)) as setcustomcolumn FROM `rablename` order by columnname LIMIT 1 
+0

爲您的答案提供一些解釋 – Thamaraiselvam