Mysql根据经纬度筛选数据
创建位置表,并且插入测试数据
/*
Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 80011 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 80011 File Encoding : 65001 Date: 2018-11-07 16:58:27 */SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for location-- ----------------------------DROP TABLEIF EXISTS `location`;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 AUTO_INCREMENT = 5 DEFAULT CHARSET = utf8;-- ------------------------------ Records of location-- ----------------------------INSERT INTO `location`VALUES ( '1', '广东省深圳市龙岗区坂田街道五和大道万科四季花城北区', '22.6265210000', '114.0606880000' );INSERT INTO `location`VALUES ( '2', '广东省深圳市龙华区民治(地铁站)', '22.6175280000', '114.0406460000' );INSERT INTO `location`VALUES ( '3', '广东省深圳市龙华区红山(地铁站)', '22.6218860000', '114.0234800000' );INSERT INTO `location`VALUES ( '4', '广东省深圳市南山区西丽街道沙河西路名典商旅酒店(深圳西丽店)', '22.5801670000', '113.9543000000' );#经度:22.626521
#纬度:114.060688#50KM范围SELECT *FROM ( SELECT *, sqrt( ( ( (22.626521 - longitude) * PI() * 12656 * cos( ((114.060688 + latitude) / 2) * PI() / 180 ) / 180 ) * ( (22.626521 - longitude) * PI() * 12656 * cos( ((114.060688 + latitude) / 2) * PI() / 180 ) / 180 ) ) + ( ( (114.060688 - latitude) * PI() * 12656 / 180 ) * ( (114.060688 - latitude) * PI() * 12656 / 180 ) ) ) AS lc FROM location ) locationWHERE lc < 50 ##距离小于50KMORDER BY ##距离小于排序 lc
Mysql根据经纬度筛选数据的更多相关文章
- 【mysql优化】大数据量分页优化
limit 翻页原理 limit offset,N, 当offset非常大时, 效率极低, 原因是mysql并不是跳过offset行,然后单取N行, 而是取offset+N行,返回放弃前offset行 ...
- php根据经纬度排序,根据经纬度筛选距离段
SQL 语句:select location.* from (select *,round(6378.138*2*asin(sqrt(pow(sin( (36.668530*pi()/180-px_l ...
- mysql 实现经纬度排序查找功能
需求如下: 商品有多个门店,用户使用App时需要查找附近门店的商品,商品要进行去重分页. 思路: 1.确认mysql自带经纬度查询函数可以使用. 2.该需求需要利用分组排序,取每个商品最近门店的商品i ...
- Mysql 计算地址经纬度距离实时位置
前言 最近在做项目时候,遇到一个这样子的需求, 点到卡包里面卡券使用使用,需要展示卡券使用附近门店, 思路 数据库地址表设计 通用的区域街道地址表tz_sys_area 字段名称 类型 备注 area ...
- .NET LINQ 筛选数据
筛选数据 筛选指将结果集限制为只包含那些满足指定条件的元素的操作. 它又称为选择. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 OfType ...
- OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】
php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...
- 基于内存,redis,mysql的高速游戏数据服务器设计架构
转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的: ...
- easyui 筛选数据及仅允许选择数据
先说需求,本地已缓存数据源,用户输入拼音码或编号,筛选数据作为新的数据源,然后通过键盘选择. 再说问题,easyui combogrid控件,在mode为local,也就是将数据源缓存在本地的情况下, ...
- EF 连接MySQL 数据库 保存中文数据后乱码问题
EF 连接MySQL 数据库 保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...
随机推荐
- miniui中表单验证规则总结
页面链接: http://www.miniui.com/demo/#src=form/rules.html 页面效果图: 页面代码: <!DOCTYPE html PUBLIC "-/ ...
- Codeforces - 规律题 [占坑]
发现自己容易被卡水题,需要强行苟一下规律题 CF上并没有对应的tag,所以本题集大部分对应百毒搜索按顺序刷 本题集侧重于找规律的过程(不然做这些垃圾题有什么用) Codeforces - 1008C ...
- .net core 的优点
[1]为什么使用.net core 首先.net core 是一个跨平台的高性能开源框架用具生成基于云连接的Internet的新的应用程序,可以建造web应用程序和服务,lot应用和移动后端,可以在W ...
- 2.6 Go 读取CSV
Go读取CSV文件,其内容被转换成字符串数组 package main import ( "encoding/csv" "fmt" "io/iouti ...
- @Transcational特性
捕获RuntimeException 捕获Error 并不捕获Checked Exception 在方法中使用@Transcational注解时候,通过throw new Exception(),在发 ...
- 微信小程序踩坑
微信小程序自定义属性data-xx使用注意事项 data-xx采用驼峰式命名时,数据传递打印显示(以jxsName与jxsname打印显示对比) data-xx全小写命名时,数据传递打印显示
- Delphi对Word一些进阶操作
利用VBA 编程,可以使许多日常的任务自动完成,使用户的工作更有效率. 1.在启动时显示打开对话框 一般情况下启动Word,Word 会认为是创建一个新文档.如果只是想打开一个旧文档进行编辑,在Wor ...
- Oracle 多行、多列子查询
本文使用到的是oracle数据库scott方案所带的表,scott是oracle数据库自带的方案,使用前请确保其解锁 一.多行子查询 多行子查询子查询是嵌入在其他Sql语句中的select语句,Ora ...
- MySQL 查询结果分组 group by
[group by {col_name | position} [ASC | DESC ]] 分组条件 [HAVING where_condition] HAVING 后面的条件必须出现在select ...
- Jmeter性能测试之添加思考时间
利用定时器添加用户思考时间 JMeter如何插入思考时间,在一个真实的性能测试场景中,是需要加入思考时间,来模拟真实用户行为.本文就来介绍,如何在三个请求之间添加思考时间. 1. 在Test Plan ...