如何在mysql中进行数学计算?

how to do mathematical calculation in mysql?

假设我有一个这样的table

ID   Point   x     y     z
---  ----   ---   ---   ---
1     A      3     2     1    
2     B      1     3     2
3     C      2     4     1
4     D      1     3     3
5     E      5     1     2

我想得到离 N 最近的点 (x,y,z) = (1,2,3)

为了得到最近的点,我们需要欧氏距离公式。 比方说,[(N(x)-data(x))^2 + (N(y)-data(y))^2 + (N(z)-data(z))^2]

的平方根

如何查询包含到 select 我想要的行的欧氏距离公式?

只需使用 order bylimit:

select t.*
from table t
order by power(x - 1, 2) + power(y - 2, 2) + power(z - 3, 2)
limit 1;

如评论中所述,您实际上不需要平方根,因为顺序相同。

顺便说一句,你可以把计算放在 select 这样你就可以 return 距离:

select t.*,
       sqrt(power(x - 1, 2) + power(y - 2, 2) + power(z - 3, 2)) as distance
from table t
order by distance
limit 1;