zoukankan      html  css  js  c++  java
  • MySQL计算两坐标距离并排序

    环境

    MySQL5.6

    https://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-object-shapes.html#function_st-distance
    

    表结构及数据

    DROP TABLE IF EXISTS `locationpoint`;
    CREATE TABLE `locationpoint`
    (
        `id`        int(11)       NOT NULL AUTO_INCREMENT,
        `province`  varchar(20)   NOT NULL,
        `city`      varchar(20)   NOT NULL,
        `longitude` double(10, 3) NOT NULL,
        `latitude`  double(10, 3) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE = InnoDB
      AUTO_INCREMENT = 1156
      DEFAULT CHARSET = utf8;
    
    INSERT INTO `locationpoint`
    VALUES (1, '山东', '济南', 116.938477, 36.597889),
           (2, '河北', '石家庄', 114.477539, 38.030786),
           (3, '浙江', '杭州', 120.058594, 30.334954),
           (4, '河南', '郑州', 113.629, 34.744),
           (5, '安徽省', '合肥', 117.170, 31.520);
    

    查询方式

    (以内蒙古自治区呼和浩特市为计算中心)

    SELECT id,
           city,
           longitude,
           latitude,
           round(
                       (
                               st_distance(
                                       point(longitude, latitude),
                                       point(111.621094, 40.913513)
                                   ) / 0.0111
                           ) * 1000
               )
               AS distance
    FROM locationpoint
    ORDER BY distance;
    

    查询结果

  • 相关阅读:
    crontab使用
    python 学习 第一课
    php调用阿里大鱼 接口curl
    thinkphp 动态 级联
    nginx重启
    linux查看 文件夹大小
    mysql convert
    mysql 数据库导入 导出,解决 导入 错误问题
    .net 更新数据 ado.net parameter
    PHP的超全局变量$_SERVER
  • 原文地址:https://www.cnblogs.com/shih945/p/12628506.html
Copyright © 2011-2022 走看看