2013-03-23 57 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查询的结尾。