sql (mysql)怎么实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql (mysql)怎么实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度?相关的知识,希望对你有一定的参考价值。

参考技术A mysql两点间距,你也自己弄成函数\\x0d\\x0a\\x0d\\x0a公式如下,单位米:\\x0d\\x0a第一点经纬度:lng1 lat1\\x0d\\x0a第二点经纬度:lng2 lat2\\x0d\\x0around(6378.138*2*asin(sqrt(pow(sin(\\x0d\\x0a(lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)*\\x0d\\x0apow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)\\x0d\\x0a\\x0d\\x0a例如:\\x0d\\x0aSELECT store_id,lng,lat,\\x0d\\x0aROUND(6378.138*2*ASIN(SQRT(POW(SIN((22.299439*PI()/180-lat*PI()/180)/2),2)+COS(22.299439*PI()/180)*COS(lat*PI()/180)*POW(SIN((114.173881*PI()/180-lng*PI()/180)/2),2)))*1000)\\x0d\\x0aAS\\x0d\\x0a juli\\x0d\\x0aFROM store_info\\x0d\\x0aORDER BY juli DESC\\x0d\\x0aLIMIT 316

sql语句中怎么实现in中的模糊查询

现在有这么一个问题,有一个phone的字段,我想提取哪些是移动的号码,于是想按号段查询... where phone in ('134%','135%'....);但发现in方法中用不了模糊查询,而用like or的方法又太麻烦,毕竟号段有十几个,所以有没有什么简单的方法,求教?

1、开启数据库管理工具,打开SQL语言编写窗体。

2、如果我们知道某字段的开头部分,我们可以用 like ‘xx%' select TOP 10 * from CK_ATE where Model like 'PSM24W%'。

3、如果我们知道某字段的中间部分,可以使用 like ‘%xx%’select TOP 10 * from CK_ATE where Model like '%24W%'。

4、如果我们知道某字段的结尾部分,我们库使用 like '%xx'select TOP 10 * from CK_ATE where Model like '%-R-FA1'。

5、补充一 上例中的  "like" 是模糊查询的关键词。

6、补充二 、 模糊查询可能涉及比较大的数据量,为避免查询时把数据库资源耗尽,我们加上一些限制条件  比如 前10行  top 10。

参考技术A where substr(phone,0,3) in ('134','135');
通过截取phone的前三位,要学会变通本回答被提问者采纳
参考技术B 模糊查询要活用啊
where phone like '13[45]%'
这样可以去除134或135开头的数据
参考技术C substring(phone,1,3) in ('134','135',...) 参考技术D where left(phone,3) in ('134','135'……)

以上是关于sql (mysql)怎么实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度?的主要内容,如果未能解决你的问题,请参考以下文章

sql (mysql)实现查询某一个经纬度周围500米距离的餐馆,数据库存放所有餐馆的经纬度。

sql语句查询经纬度范围

用mysql查询某字段是不是有索引怎么做?

SQL Server语句查询指定位置(经纬度)范围内信息

用mysql查询某字段是不是有索引怎么做?

laravel 的 sql 查询中的语法错误