【问题标题】:How to get only one column from MySQL with ST_Distance_Sphere如何使用 ST_Distance_Sphere 从 MySQL 中仅获取一列
【发布时间】:2020-08-21 13:56:30
【问题描述】:

我有一张包含城市列表和 GPS 坐标的表格,例如: id, name, lat, lon 从中我正在寻找一个最近的城市

select
    name, 
    ST_Distance_Sphere(point(lon, lat), point('20.073602', '49.937056') )/1000 as distance 
    from city 
    order by distance asc LIMIT 1;

但是如何从这个查询中只接收一个“城市”字段(一列),结果没有第二列是距离?

这是我的 SQL 小提琴:https://www.db-fiddle.com/f/hdshw2KCjNZrXZoKQQgoKR/1

【问题讨论】:

    标签: mysql spatial-query


    【解决方案1】:

    你可以直接把你的表达式放在order by子句中

    select
        name
    from city 
    order by ST_Distance_Sphere(point(lon, lat), point('20.073602','49.937056') )/1000 asc
    limit 1;
    

    DEMO

    【讨论】:

    • 我知道这一定很简单,但我不知道我可以按顺序使用表达式。感谢 yoy 非常快速准确的回复
    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多