MySQL 查询第N高
2022/6/11 2:21:25
本文主要是介绍MySQL 查询第N高,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、如图查询第N高的score
二、思路
1、创建辅助变量@temp记录当前分数,@sort记录排序
SELECT @sort:=0,@temp:=NULL;
2、使用ORDER BY进行分数排序
SELECT * FROM score s,( SELECT @sort:=0,@temp:=NULL) re ORDER BY s.score DESC;
3、使用IF函数根据分数判定排名,并更新@temp为当前分数
SELECT s.*, @sort:=IF(@temp=s.score,@sort,@sort+1) AS rank, @temp:=score AS val FROM score s, (SELECT @sort:=0, @temp:=NULL) re ORDER BY s.score DESC;
4、在排序结果中查出最终第N的分数
SELECT score, rank FROM (SELECT s.*, @sort:=IF(@temp=s.score,@sort,@sort+1) AS rank, @temp:=score AS val FROM score s, (SELECT @sort:=0, @temp:=NULL) re ORDER BY s.score DESC) res WHERE rank = 2;
这篇关于MySQL 查询第N高的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南