如何关系型数据库获取距离并排序和分页
如题,一个项目。。甲方不用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就只给第一页。。都不写默认的话就直接没分页了。。。
求大佬指点下这个问题要怎么解决。。。
然后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就只给第一页。。都不写默认的话就直接没分页了。。。
求大佬指点下这个问题要怎么解决。。。