我目前运行的查询返回一个距离列,显示距离给定点的英里距离
SELECT user_id,
SQRT(
POW(69.1 * (lat_col - 60.454509), 2) +
POW(69.1 * (9.667969 - lng_col) * COS(lat_col / 57.3), 2)
) AS distance
FROM users ORDER BY distance ASC
返回
user_id | distance
-------------------
1 27
56 29
8 32
32 45
4 56
6 64
问题是这个距离值以英里为单位,我需要它以公里为单位。我可以在php
中执行此操作,但我希望通过使用当前的SQL来保持简单,快速和干净。
答案 0 :(得分:0)
1英里= 1.609344公里所以我们可以改变距离:
SELECT user_id,
SQRT(
POW(69.1 * (lat_col - 60.454509), 2) +
POW(69.1 * (9.667969 - lng_col) * COS(lat_col / 57.3), 2)
) * 1.609344 AS distance
FROM users ORDER BY distance ASC
答案 1 :(得分:0)
度经度平均为111公里,取决于何处。
答案 2 :(得分:0)
1 Mile = 1.60934 Kilometer
。因此,您只需将距离计算乘以1.60934
SQRT(
POW(69.1 * (lat_col - 60.454509), 2) +
POW(69.1 * (9.667969 - lng_col) * COS(lat_col / 57.3), 2)
) * 1.60934 AS distance