1. 程式人生 > 其它 >Mysql根據經緯度查詢距離範圍內的商戶

Mysql根據經緯度查詢距離範圍內的商戶

技術標籤:隨筆mysqljava小程式

表結構:

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

查詢結果:
查詢結果簡單實現,親測有效.