我试图将两个值与表中的值进行比较以找到最接近的值,但是每次尝试代码(见下文)时,我只会得到返回的第一行

    SELECT latitude, longitude, ABS(latitude - 53.316494), ABS(longitude - -6.253541) AS distance
    FROM station
    ORDER BY distance
    LIMIT 1;


谢谢你的帮助。

最佳答案

您的查询:

SELECT latitude, longitude, ABS(latitude - 53.316494), ABS(longitude - -6.253541)
FROM station
LIMIT 1;


但是纬度和经度上的“比较MySQL中最接近的值”意味着找到最接近的方式
应该看起来像:

SELECT latitude, longitude, ABS(latitude - 53.316494), ABS(longitude - -6.253541)
FROM station
ORDER BY (POW((latitude - 53.316494,2) + POW((longitude - -6.253541),2)) ASC
LIMIT 1;

10-08 18:34