【发布时间】:2011-10-09 15:56:17
【问题描述】:
我有一个带有 X、Y 和 Z 坐标的 MySQL 表。该表的每一行对应于三个空间中的一个特定点。目前,这些数据存储为三个单独的整数列,但如果需要,我可以更改它。
我想查询此表以找到给定输入点 (x, y, z) 的最近点。一种天真的方法是为表中的每一行选择SQRT(POW((TableName.X - x), 2) + POW((TableName.Y - y), 2) + POW((TableName.Z - z), 2)) AS Distance,然后选择具有最小Distance 的行。
我知道 MySQL 有一个 Point 数据类型,但我不确定这是否会有所帮助。有谁知道计算欧几里得距离的有效方法?提前致谢。
【问题讨论】:
-
不幸的是 MySQL 的
Point有 2 个坐标,所以它只适用于平面 (2D) 几何,而不适用于 3D。
标签: mysql