首页 > 数据库 >Mysql 根据经纬度计算距离

Mysql 根据经纬度计算距离

时间:2023-03-09 14:46:28浏览次数:51  
标签:distance 经纬度 point juli 距离 st 180 Mysql PI

 

方式1:st_distance_sphere

st_distance_sphere函数返回以米为单位
SELECT *,
st_distance_sphere(point(lng,lat),point(116.3424590000,40.0497810000)) as juli 
FROM table ORDER BY juli ASC 


 

 



方式2:st_distance

 

st_distance返回的度
st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。

 

SELECT
    *,st_distance (
    point ( longitudes, latitudes ),
    point ( 113.264435, 23.129163 )) AS juli 
FROM
    zxh_distance 
ORDER BY
    juli ASC;

 

 

方式3 直接计算

 

SELECT
    *,ROUND(
        6378.138 * 2 * ASIN(
            SQRT(
            POW( SIN(( 23.129163 * PI()/ 180-latitudes * PI()/ 180 )/ 2 ), 2 )+ COS( 23.129163 * PI()/ 180 )* COS( latitudes * PI()/ 180 )* POW( SIN(( 113.264435 * PI()/ 180-longitudes * PI()/ 180 )/ 2 ), 2 )))* 1000 
    ) AS juli 
FROM
    zxh_distance 
ORDER BY
    juli ASC

 

标签:distance,经纬度,point,juli,距离,st,180,Mysql,PI
From: https://www.cnblogs.com/cj8357475/p/17198342.html

相关文章

  • MySQL开放远程连接权限
    创建一个新的MySQL用户,命令行登录mysql,通过语句创建一个新用户CREATEUSER'username'@'%'IDENTIFIEDBY'your_user_password';让我们授予这个用户一些数据库权限,例......
  • mysql8.0 sql_mode 报错1055
    Mysql的8.0版本中默认是开启sql_mode=only_full_group_by。可能会导致1055报错,要关闭的话可以这样操作在MySQL下执行语句SELECT@@sql_mode将查询结果中的ONLY_FULL_GR......
  • Mysql常用操作
    创建用户:CREATEUSER'username'@'%'IDENTIFIEDWITHmysql_native_passwordBY'password';创建数据库:CREATEDATABASEdatabasename;赋权:grantallondataba......
  • python连接mysql
    conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="mydatabase",charset="utf8")cur=conn.cursor(cursor=pymysql.cursor......
  • mysql 数据库小工具: 小写转大写
    SELECTconcat( 'renametable',TABLE_NAME,'to',UCASE(TABLE_NAME),';')AS'修改脚本sql'FROMinformation_schema.TABLEStWHERETABLE_SCHEMA='newal......
  • mysql 索引篇
    --8.0.16selectversion();droptableifexiststest1--建表test1CREATETABLE`test1`(`id`bigintNOTNULL,`code`varchar(30)NOTNULL,`age`int......
  • 如何搞定MySQL锁(全局锁、表级锁、行级锁)?这篇文章告诉你答案!太详细了!!!
    概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问......
  • MySQL数据库如何在SQL语句中显式的使用排序规则?
    大家都知道,MySQL数据库在SQL语句中都是使用ORDERBY子句来进行排序,可以使用ASC或DESC关键字来指定排序的方式,即升序或降序。那如果要在排序时指定特定的排序规则,该怎么写......
  • Mysql导出文本文件
    使用mysqldump命令导出文本文件mysqldump-uroot-pPassword-T目标目录dbname[tables][option];其中:Password参数表示root用户的密码,密码紧挨着-p选项。-T:只有......
  • MySQL如何指定字符集和排序规则?
    在MySQL中,可以使用以下两种方式指定字符集和排序规则:创建数据库或表时指定字符集和排序规则在创建数据库或表时,可以使用CHARACTERSET和COLLATE选项......