建表
CREATE TABLE `map` (
`id` int(11) NOT NULL,
`address` varchar(255) NOT NULL DEFAULT '',
`location` geometry NOT NULL,
PRIMARY KEY (`id`),
SPATIAL KEY `idx_location` (`location`)
)
插入
INSERT INTO map (id, address, location) VALUES (1, 'somewhere', ST_GeomFromText('POINT(121.366961 31.190049)'));
注意必須使用 ST_GeomFromText 函數(shù),且 POINT() 里面是:經(jīng)度+空格+緯度
查詢
1. 查看經(jīng)緯度
SELECT address, ST_AsText(location) AS location FROM map;
2. 計算兩點之間的距離
SELECT ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map;
算出來的結(jié)果,單位是米
注意現(xiàn)在POINT()里面經(jīng)緯度之間是逗號分隔的
3. 查詢距離小于1000m的地點,并由遠(yuǎn)及近排序
復(fù)制代碼 代碼如下:
SELECT id, address, ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map WHERE ST_Distance_Sphere(POINT(121.590347, 31.388094),location) 1000 ORDER BY distant;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- mybatis學(xué)習(xí)之路mysql批量新增數(shù)據(jù)的方法
- MySQL和Redis實現(xiàn)二級緩存的方法詳解
- MySQL普通索引和唯一索引的深入講解
- mysql binlog(二進(jìn)制日志)查看方法
- Docker創(chuàng)建MySQL的講解
- PHP date()格式MySQL中插入datetime方法
- pymysql如何解決sql注入問題深入講解
- mysql導(dǎo)出表的字段和相關(guān)屬性的步驟方法
- MySQL線程處于Opening tables的問題解決方法
- MySQL limit性能分析與優(yōu)化