我正在尝试计算并返回某些点之间的距离。
这是我正在使用的完整MYSQL语句。我尝试了这个公式的多个版本,它们都有类似的结果:返回零结果。对我做错了什么的想法?
SET @origLat = 37.386337;
SET @origLon = -122.085823;
SET @dist = 20;
SELECT user_id, user_lat, user_lon, 3956 * 2 *
ASIN(SQRT( POWER(SIN((@origLat - abs(user_lat))*pi()/180/2),2)
+COS(@origLat*pi()/180 )*COS(abs(user_lat)*pi()/180)
*POWER(SIN((@origLon-(user_lon))*pi()/180/2),2)))
AS distance
FROM myTable
WHERE user_lon BETWEEN (@origLon-@dist/abs(cos(radians(@origLat))*69)) AND (@origLon+@dist/abs(cos(radians(@origLat))*69)) AND
user_lat BETWEEN (@origLat-(@dist/69)) AND (@origLat+(@dist/69))
HAVING distance < @dist ORDER BY distance LIMIT 100
这是我的表格中的内容。
仅运行我的SELECT子句显示Distance返回nil。