本身这两个数据之间没有关联,并且sql语句里面的排序规则不能满足要求:sql里只有数据中前一个排序条件出现相同的情况时才考虑后面的排序条件.实际情况是如果按先推送时间后距离排序的话,距离就起不了作用,反之亦然.
要让两个数据产生关联,有一种做法是将这两个数据做加法或减法后排序,但是这必须要考虑以下情况
两个数据的数据类型不一致,一个是日期类型另一个是双精度类型
必须统一两个数据的排序方向,不能推送时间取正序而距离取反序,视实际需求而定
将这两个数据都转换成一种类型,需要一个系数来平衡它们.如果一个数据数量级极大,另一个数据数量极小,那么极小的数据再怎么变化对极大的数据产生的影响也可以忽略
下面来具体实现,首先将日期类型转换为双精度类型,操作两个数值类型的数据相对来说比较容易.mysql里面正好有这样的函数:unix_timestamp(date) -- 直接返回内部时戳值
复制代码 代码如下:
-- 相差一天的时戳值
select unix_timestamp('2010-12-13') - unix_timestamp('2010-12-12')
-- 计算结果:86400
关于已知两地经纬度计算距离的公式,在网上搜索了一个,计算结果还算满意
复制代码 代码如下:
ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)
接下来考虑两个数据的排序方向,我们希望的是:距离上次推送时间越久越好,与用户之间的距离越近越好.时间越久那么计算得出的差值就越大,两个数据直接相加明显不行.这里只好将时间取负值来满足与用户之间的距离越近越好的要求,然后再按正序排列.
再来让这两个数在同一数量级,根据数据测试,时间取的是秒,距离算出来是公里,直接把距离乘上一个系数(1000)换算成米来平衡二者.
最终的推送语句如下:
复制代码 代码如下:
select BottleID,(ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)as Distance from Bottle
inner join Venue_Mapabc
on Bottle.VenueID = Venue_Mapabc.VenueID
where Bottle.IsDrift =1 and Bottle.IsEmpty =1 and IsFinished=0 and Venue_Mapabc.City = pCity
-- and (ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)>1.5
order by
(-(unix_timestamp(now())-unix_timestamp(Bottle.PlaceTime))*0.5 +
(ROUND((2 * ASIN(SQRT(POWER(SIN(((LAT*PI()/180.0)-(plat*PI()/180.0)) / 2), 2) + COS(LAT*PI()/180.0) * COS(plat*PI()/180.0) * POWER(SIN((LNG*PI()/180.0-plng*PI()/180.0) / 2), 2))))*6378.137*10000,3)/10000)*0.5*1000)
limit 1;
前端截图:
相关推荐:
为什么新手做seo好做,为什么要懂seo ,ai少女 3060显卡
ChatGPT您的应用遇到问题,无法正常启动?如何解决并重新体验智能助手的魅力!,男头ai关键词
用AI写文章会不会查重率高?破解写作困扰的真相
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
seo,seoul city ,ai精洗
seo用什么法宝,列出5种seo赚钱方式 ,ai怎么更改文档样式
软件我在AI:改变未来的智能助手
文字写作AI生成工具:让创作更简单、更高效
ChatGPT崩一次多久修复?揭秘背后的技术与保障,ai1818818
SEO引擎优化方法-让你的网站流量暴增的实战指南,ai智慧树
seo需要了解什么,seo需要学些什么内容 ,ovo ai
SEO有意:如何通过优化策略提升网站排名与流量,天津政府智慧网站建设
seo深度优化插件是什么,深度优化手机软件 ,ai的缩写
优化*:打造更加高效、创新的娱乐体验,石排网站建设制作多少钱
AI人工智能:改变未来的科技革命
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
seo规范是什么,seo行业标准 ,啊龙ai音乐
ChatGPT充值打不开?这几招教你轻松解决问题!,免费的ai写作绘图
SEO适合-提升网站排名的关键策略,张家口品牌推广营销中心
UCMS:引领智慧医疗新时代,打造数字化健康未来,推广工作谈营销
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
SEO优化顾问:让您的网站脱颖而出的秘密武器,ai ps 群
SEO关键词利器:如何借助精准关键词提升网站流量与排名,ai绘画客户
SEO场景下的数字营销:如何通过精准优化提升网站流量,陕西融发建设集团网站
AI缩写在线:让人工智能助力你行业前沿技术,ai uhrehara
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
SEO做好,企业网站流量翻倍的关键,seo白帽技术有哪些
智能AI写作生成:如何借助人工智能提升创作效率与质量
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
seo要学什么语言,做seo需要什么语言 ,ai martino
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
ChatGPT登录503错误?轻松解决,快速恢复畅享智能体验!,ai怎么加植物材质效果
文字生成AI:开启创意写作的新纪元
SEO作用:提升网站流量与品牌曝光的秘密武器,美容网站联盟平台推广
SEO趋势:2025年搜索引擎优化的未来发展,河南省营销推广系统官网
AI提供的阅读书目对学生的专业知识有多大帮助,沃奇ai
优化综合:引领高效发展的智慧之道,电影营销的推广方式
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
SEO优化:提升网站流量的终极指南,揭阳网站快速推广
什么是SEO金融,seo是做什么的 ,ai中转程序
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
目前国内最好的AI人工智能软件:未来新篇章
SEO伪创:提升网站排名的危险策略与如何避免,怎样介绍社交网站推广
什么是蜘蛛弛?揭秘这个SEO优化背后的神秘工具,南沙seo优化排名价格
什么是SEO可以自学吗,seo零基础可以自学吗 ,ai1紫
seo软件叫什么,seo软件视频教程 ,eps ai 缩略图
AI生成文章免费工具,让创作变得轻松又高效,ai安心健
ChatGPT手机下载后打不开?可能是这些问题导致的,解决方法在这里!,孤城ai动画
SEO怎么优化比较好?全面提升网站排名的实用技巧,高级ai玩家