请帮助我,我不明白这个查询中的 3959 是什么,这个查询的逻辑是什么。
$sql = 'SELECT `Zip`, `City`, `State`, `Lat`, `Long`,
( 3959 * acos( cos( radians("%s") ) * cos( radians( `Lat` ) ) * cos( radians( `Long` ) -
radians("%s") ) + sin( radians("%s") ) * sin( radians( `Lat` ) ) ) ) AS distance
FROM Zips
HAVING distance < "%s"
ORDER BY distance LIMIT 0 , 2';
最佳答案
3959 是以英里为单位的地球半径。查询正在计算输入的经纬度与表中点的经纬度之间的距离(以英里为单位),并选择最接近的。没有那么多逻辑,它是纯数学。鉴于距离本身并未输出,您甚至可以不乘以 3959,仍然会得到相同的结果。
关于mysql - 弧度获取用户的sql语句逻辑是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795963/