Environment
MySQL5.6
https://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-object-shapes.html#function_st-distance
Table structure and data
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;
Query method
(Taking Hohhot City, Inner Mongolia Autonomous Region as the calculation center)
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);
Query results
Recommended: "mysql tutorial"
The above is the detailed content of How does MySQL calculate the distance between two coordinates and sort them?. For more information, please follow other related articles on the PHP Chinese website!