Mysql 距离搜索

建表和索引

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 (2, '南京', ST_GeomFromText('POINT(120.366961 30.190049)'));

简单搜索

SELECT address, ST_AsText(location) AS location FROM map;

搜索本地和数据库保存的位置距离

SELECT address, ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map;

搜索距离小于100000m城市,并按距离排序

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) < 100000 ORDER BY distant;
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 探索和学习MySQL中GIS相关功能和特性 探索流程: 这里记录了学习和了解MySQL中GIS特性相关内容的过程。...
    囍冯总囍阅读 14,067评论 0赞 3
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 8,097评论 0赞 10
  • 前言 Google Play应用市场对于应用的targetSdkVersion有了更为严格的要求。从 2018 年...
    申国骏阅读 68,494评论 15赞 98
  • 《来,我们说说孤独》 1·他们都在写孤独 一个诗人 如果 不说说 内心的孤独 不将孤独 写进诗里 是不是很掉价呢 ...
    听太阳升起阅读 4,808评论 1赞 7
  • 自幼贫民窟长大的女子,侥幸多念了两本书,枉以为可以与人平起平坐。可是人生从来都是接力赛,我们却天真的当成了百米冲刺...
    Leeanran阅读 6,095评论 1赞 5

友情链接更多精彩内容