表结构:
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
查询结果:
简单实现,亲测有效.