mysql - 弧度获取用户的sql语句逻辑是什么

标签 mysql math geometry sql

请帮助我,我不明白这个查询中的 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/

相关文章:

c++ - 为什么我的条件不起作用?

Python OpenCV HoughCircles 没有给出好的结果

php - 没有任何内容会插入到我的数据库中

mysql更新列内部连接另一个表

python - 无法让 MySQLDb 在 Mac 上的 python 中工作还有其他更简单的数据库吗?

python - pyEphem - 计算非地球卫星的位置

mysql - 使用 MySQL 配置 ActiveMQ

为每个用户分配一个唯一的比特序列的算法?

algorithm - 与另一条线和另一个圆相切的圆

algorithm - 找到离直线最近的点