mysql 查询一个地点(经纬度) 附近N公里内的数据。(根据一个地点的经纬度查询这个地点方圆几公里内的数据)

1.创建测试表

CREATE TABLE `location` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`longitude` decimal(13,10) NOT NULL,

`latitude` decimal(13,10) NOT NULL,

PRIMARY KEY (`id`),

KEY `long_lat_index` (`longitude`,`latitude`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.插入测试数据

insert into location(name,longitude,latitude) values('广州东站',113.332264,23.156206),

('林和西',113.330611,23.147234),

('天平架',113.328095,23.165376);

3.搜寻1公里内的数据

搜寻点坐标:时代广场 113.323568, 23.146436

6370.996公里为地球的半径

计算球面两点坐标距离公式:

C = sin(MLatA)sin(MLatB)cos(MLonA-MLonB) + cos(MLatA)cos(MLatB)

Distance = RArccos(C)*Pi180

根据计算公式得到查询语句如下:

select * from `location` where (

acos(

sin(([#latitude#]*3.1415)/180) * sin((latitude*3.1415)/180) +

cos(([#latitude#]*3.1415)/180) * cos((latitude*3.1415)/180) * cos(([#longitude#]*3.1415)/180 - (longitude*3.1415)/180)

)*6370.996

)<=1;

执行查询:

SELECT * FROM `location` WHERE (ACOS(SIN((23.146436*3.1415)/180) * SIN((latitude*3.1415)/180) + COS((23.146436*3.1415)/180) * COS((latitude*3.1415)/180) * COS((113.323568*3.1415)/180 - (longitude*3.1415)/180))*6370.996)<=1;

mysql查附近500米商户_mysql查询附近门店相关推荐

  1. mysql查所有值的长度_MySQL查询以获取列中所有值的字符长度?

    若要获取字符长度,请使用CHAR_LENGTH()方法.让我们首先创建一个表-mysql> create table DemoTable -> ( -> Name varchar(1 ...

  2. mysql查各分数段人数_mySql 分段查询

    标签: 准备: 创建一个成绩表 Create table grade (id integer, score integer); 插入数据(只有id每次加一,score是1到100的随机数,java生成 ...

  3. mysql查其它用户的表_mysql sql查询如何实现发私信用户和其他用户的列表?要求消重所有重复的用户结果...

    私信表结构如下: 建表语句和数据CREATE TABLE `message` ( `id` int(5) NOT NULL, `sender_id` int(5) DEFAULT NULL, `rec ...

  4. mysql查询表里面重复的数据_mysql查询表里的重复数据方法

    这篇文章主要介绍了mysql查询表里的重复数据方法,需要的朋友可以参考下 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),( ...

  5. mysql 查看某个表缓存情况_MySQL 查询缓存 QUERY_CACHE

    保存查询返回的完整结果.当查询命中该缓存,MySQL会立即返回结果,跳过解析.优化和执行阶段. 官方在特定环境测试结果(官方文档中有详细说明): 1.如果对某表进行简单查询,但每次查询条件都不一样时, ...

  6. mysql表中有重复的元组_MySQL查询找到重复的元组并显示计数?

    要查找重复的元组,请使用GROUP BY HAVING子句.让我们首先创建一个表-mysql> create table DemoTable -> ( -> Id int, -> ...

  7. mysql查阅某个日期的语句_mysql查询指定日期时间内的sql语句及原理

    查询指定日期时间内的sql语句的实现原理: 如果是月份就是当前的月减去你要统计的时间,比如要查询数据库中从今天起往前三个月的所有记录. 另外,在数据库设计阶段,要注意时间字段为int(11),保存在数 ...

  8. mysql 从库 速度太慢_mysql查询速度慢的原因[整理版]

    在以前的博客中陆续记录了有关查询效率方面的文章.今天在整理一下,写上自己的一些心得记录如下: 常见查询慢的原因常见的话会有如下几种: 1.没有索引或没有用到索引. PS:索引用来快速地寻找那些具有特定 ...

  9. mysql学生表选课表课程表_mysql查询(学生表、课程表、选课表)

    ************************************************************ 为sc表中的sno和cno创建外键 alter table sc add fo ...

最新文章

  1. 如何使用Apache的ab工具进行网站性能测试
  2. 2.10 是否要使用端到端的深度学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  3. python 获取第一个key_Python中常见的9大坑,看看你有没有遇到
  4. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑...
  5. 【操作系统】输入输出系统(下下)-思维导图0.0
  6. 剑指offer面试题64. 求1+2+…+n(逻辑符短路)(递归)
  7. aix errpt输出详解
  8. Bresenham画线算法详解及其OpenGL编程实现
  9. 计算机网络技术教研活动,(2012.09.27)计算机网络技术专业教研活动(文本).doc...
  10. 测试用例的定义,测试用例模板,测试用例的作用,测试用例编写注意事项
  11. Android gallery 3D效果(扩展Gallery)
  12. exadata的infiniband管理
  13. 台达plc接线图实物_台达PLC dvp-14es 外部电路怎么接线
  14. 【期刊推荐】JCR2区数学算法优化类重点SCI期刊征稿中~
  15. 使用python做手机app后台
  16. 2022年金三银四该如何规划,才能轻松拿到offer
  17. IT4IT的前世今生
  18. 最易懂得 鸿蒙 实战 - 真机调试 原子服务
  19. arm服务器芯片尺寸,华为公开ARM服务器芯片“Hi1620”:7nm+64核心
  20. 今日春分|春生美好,万事可期

热门文章

  1. 川希:日引流100+宝妈粉蓝海方法,精准引流预产期宝妈思路
  2. AcWing 844.走迷宫
  3. Maven 三种archetype说明
  4. 《谱图论》读书笔记(第一章)
  5. linux输入多行内容至文件
  6. Ubuntu20.04开放指定端口
  7. php switch 汉字,php switch 语法
  8. a后缀名是什么格式文件,怎么打开.a文件
  9. 根轨迹法不完全笔记(自动控制原理)
  10. Ubuntu22.04安装、配置、美化、软件安装、配置开发环境