来自特定值的最近两个值

时间:2013-06-02 16:57:55

标签: mysql sql

我有一个包含点XY的表格。我需要找到距离原点X最近的Y(0, 0)点。

我正在尝试这种方式:

SELECT *
FROM `line` 
WHERE xi < yi and 0 < xi and 0 < yi and yi < xi
ORDER BY yi and xi  ASC 
Limit 100

但我没有得到理想的价值。

3 个答案:

答案 0 :(得分:6)

到原点的距离由sqrt(xi^2 +yi^2)给出。由于平方根是严格提升的,因此可以省略它以便进行排序。这给了:

SELECT *
FROM `line` 
ORDER BY xi*xi + yi*yi
Limit 100

答案 1 :(得分:1)

您需要计算距离d = sqrt(x²+y²)以获得距离原点最近的点

select x, y, sqrt(x*x + y*y) as distance
from `line` 
order by distance asc
limit 1

答案 2 :(得分:1)

SELECT xi, yi, xi * xi + yi * yi As r2
FROM line
ORDER BY r2