mysql+@rowno"/>
mysql+@rowno
sql优化无止境,最近在写sql的时候,用到了mysql中排序,然后需要某个行业在排序排名,优化了很久,还是不能达到理想的效果,国内博客网站也搜了很多,最后从歪果仁那里发现了解决的方法,歪果仁的思维方式,有时候真的让人很难理解,但是值得我们去思考,有时候问题的解决,不一定要在一条路上,思维的改变或许更重要。这里简单整理了一下分享给大家,希望对大家有一定的帮助。
业务梳理
业务需求,大小表关联,同时计算大表中,基于指数值排序,找到所所需应用在所有应用中的排名。这里主要通过Mysql中order by来对数据进行排序,同时使用@rowno对排序后的数据进行标记序号(Mysql中没有row number,rank等函数)。
具体sql如下:
select s.index_value, s.ranking from (
select app_key,index_value,@rowno:=@rowno+1 as ranking
from
index_app_total_list_day a,
(select @rowno:=0)t
where
start_time <= 1551801600
and end_time >= 1551801600
and type=0
order by index_value desc ) s
join
(select app_key
from
index_app
where
更多推荐
mysql+@rowno
发布评论