如何使用SQL语句根据经纬度计算距离

本文介绍如何通过SQL语句根据经纬度计算距离。SQL语句中要到了ACOS、COS、SIN、RADIANS等SQL函数。

1、创建测试表

​ 执行以下SQL语句创建测试表。

CREATE TABLE `test`  (
  `id` bigint(20) NOT NULL COMMENT '编号',
  `lon` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '经度',
  `lat` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '纬度',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

2、插入模拟数据

​ 执行以下SLQ创建模拟数据。

INSERT INTO `test` VALUES (1, '113.66072', '34.79977');
INSERT INTO `test` VALUES (2, NULL, NULL);
INSERT INTO `test` VALUES (3, '113.42175853602474', '34.811229145387216');
INSERT INTO `test` VALUES (4, '113.73812176197008', '34.783202623364886');
INSERT INTO `test` VALUES (5, '113.65', '34.76');
INSERT INTO `test` VALUES (6, '113.65', '34.76');
INSERT INTO `test` VALUES (7, '113.65', '34.76');
INSERT INTO `test` VALUES (8, '113.673302', '34.804753');
INSERT INTO `test` VALUES (9, '34.79977', '34.81597096304563');






扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论