例如,假设我有一张桌子:
Business(BusinessID, Lattitude, Longitude)
Run Code Online (Sandbox Code Playgroud)
当然,所有的都被索引了。还有100万条记录
例如,假设我想找到最接近 106,5 的商家,我该怎么做?
如果我做
SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
Run Code Online (Sandbox Code Playgroud)
例如,或者如果我这样做
SELECT *
FROM Business
TOP 20
Run Code Online (Sandbox Code Playgroud)
理论上,计算机必须计算所有业务的距离,而实际上只有经度和纬度在一定范围内的业务才需要计算。
那么我怎样才能在 PhP 或 SQL 中做我想做的事呢?
我很感激到目前为止的答案。我正在使用 mysql 并且他们没有比明显的解决方案更有效的方法。MySQL 空间也没有计算距离函数。