例如,有一个像chennai和bangalore这样的地方的单曲。因此,该记录存储在数据库中,具有2个纬度和2个经度,如钦奈的纬度和经度,存储在数据库中的班加罗尔的纬度和经度为latitude1,latitude2和longitude1,longitude2。现在我想要检索此数据,如果用户搜索半径50公里或更远距离内的班加罗尔或钦奈。现在我只使用以下查询单个地方。
SELECT *, (3959 * acos(cos(radians($Latitude)) * cos(radians(latitude))
* cos(radians(longitude) - radians($Longitude))
+ sin(radians($Latitude)) * sin(radians(latitude ))))
AS distance
FROM MyTableName HAVING distance < $Distance ORDER BY distance
这是表结构
name | latitude1 | latitude2 | longitude1 | longitude2
-----------|---------------|---------------|----------------|--------------
record1 | 13.0827 | none | 80.2707 | none
-----------|---------------|---------------|----------------|---------------
record2 | 12.9716 | 13.0827 | 77.5946 | 80.2707