【发布时间】:2012-12-24 15:31:17
【问题描述】:
我有 $latitude = 29.6815400 和 $longitude = 64.3647100,现在在 MySQL 中,我想取离这些坐标最近的 15 个地方,我打算做这个查询:
SELECT *
FROM places
WHERE latitude BETWEEN($latitude - 1, $latitude + 1)
AND longitude BETWEEN($longitude - 1, $logintude + 1)
LIMIT 15;
你认为它是正确的还是你有其他建议?
BEETWEEN怎么办,因为我想在附近的地方搜索最多50Km的范围?
我忘了说我也可以在运行查询之前使用 PHP 做任何事情。
注意:我不能使用存储过程。
【问题讨论】:
-
您确定会在这些条件下获得 15 条记录吗?
-
@mamdouhalramadan nope ,我问这是否正确
-
然后。确定这是不正确的。因为这些条件会根据固定条件为您提供数据库中的内容,而您需要的是动态方法。就像使用欧几里得距离一样。但这需要存储过程!!!
-
这正是您所需要的。但最好在您的情况下使用存储过程。或者如果你使用 php 来做它会很棒。
标签: php mysql sql range coordinates