如何关系型数据库获取距离并排序和分页

如题,一个项目。。甲方不用es,redis。。。所以直接数据库查距离,这个是硬性条件
然后spring boot jpa
用的jpa的原生语句。。
大概语句如下
select * from 表 order by ROUND(6378.138*2*ASIN(SQRT(POW(SIN(?1 *PI()/180-lat*PI()/180)/2),2) COS(?2 *PI()/180)*COS(lat*PI()/180)*POW(SIN((?3 *PI()/180-lng*PI()/180)/2),2)))*1000)
关键就是这个order by的不是一个字段,甚至还有参数,所以不能用pageable里面的sort。。。
可是这样的原生语句再用pageable分页的时候,不写sort就只给第一页。。都不写默认的话就直接没分页了。。。
求大佬指点下这个问题要怎么解决。。。
全部评论
没太明白你的意思,不过可不可以先算出来生成一列你要的这个距离,然后再order by这一字段?相当于有一个子查询
点赞 回复 分享
发布于 2019-04-05 08:04
自己手写分页sql,参数pageno,pagesize,不用pageable了
点赞 回复 分享
发布于 2019-04-05 06:48

相关推荐

03-19 10:07
已编辑
门头沟学院 golang
Yki_:你倒是进一个面啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务