2013-03-23 65 views
0

不確定該主題是否恰當地描述了我正在嘗試的內容,但這裏是情況。我有一個x,y座標和與它們相關聯的位置的數據庫。我想有用戶的x提交表單數據和y座標並且接近SQRT的順序返回結果((X1-X2)^ 2 +(Y1-Y2)^ 2)。我不太確定如何將距離公式應用於要顯示的結果集。有關如何解決這個問題的任何建議?根據距離公式排序SQL結果

回答

0

它真的沒有那麼難。只需將接近度計算放入order by子句即可。你的SQL需要是動態的,所以你可以用x和y輸入值來代替。我繼續並選擇了近似計算,以便您可以看到排序中使用的值。

選擇位置,SQRT((X- {X輸入值})^ 2 +(Y-{Y輸入值})^ 2)作爲接近
從位置
爲了通過SQRT((X- {X輸入值})^ 2 +(y- {y輸入值})^ 2)

0

平方根函數是單調遞增的,因此,如果SQRT(a)是比SQRT(b)中大,則A比B大。所以,如果SQRT是不是在你的SQL方言可用,你可以跳過它:

ORDER BY (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) 

是添加到您的SQL查詢的結尾。