Mysql根據經緯度查詢距離範圍內的商戶
阿新 • • 發佈:2021-01-05
表結構:
CREATE TABLE `app_store` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`longitude` varchar(255) NOT NULL COMMENT '經度',
`latitude` varchar(255) NOT NULL COMMENT '緯度',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET= utf8;
查詢SQL:
SELECT
id,
NAME,
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW( SIN( ( 我的緯度 * PI( )
/ 180 - latitude * PI( ) / 180 ) / 2 ), 2 )
+ COS( 我的緯度 * PI( ) / 180 )
* COS( latitude * PI( ) / 180 )
* POW( SIN( ( 我的經度 * PI( )
/ 180 - longitude * PI( ) / 180 ) / 2 ), 2 )
)
) * 1000
) AS distance
FROM
app_store
ORDER BY
distance
查詢結果:
簡單實現,親測有效.