MySQL-字段间的结果怎么显示名次

发布于 2017-03-25 00:41:10 字数 157 浏览 1164 评论 1

表:
name class A B C D E
张三 五年级 98 88 92 90 88

像这种 A、B、C、D、E 五个是课程,怎么让张三这个人的课程加上排名。
比如 A 第一, C第二, D第三 B第四 E第五

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灵芸 2017-04-12 03:05:13

SET @num=0,@num1=0;
SELECT num.id, num.rank AS rank,numm.rank AS rank1, num.num AS num,numm.num1 AS num1, num.named FROM (SELECT id, @num:=@num+1 AS rank,num,named FROM a ORDER BY num DESC)AS num INNER JOIN (SELECT id, @num1:=@num1+1 AS rank,num1 FROM a ORDER BY num1 DESC)AS numm ON num.id=numm.id

这个是写成一条的样子
SELECT num.id, num.rank AS rank,numm.rank AS rank1, num.num AS num,numm.num1 AS num1, num.named FROM

(SELECT aa.id, @num:=@num+1 AS rank,aa.num,aa.named FROM (SELECT * FROM a ORDER BY num DESC) AS aa,(SELECT @num:=0) s)AS num
INNER JOIN
(SELECT aaa.id, @num1:=@num1+1 AS rank,aaa.num1 FROM (SELECT * FROM a ORDER BY num1 DESC) AS aaa,(SELECT @num1:=0) ss)AS numm
ON
num.id=numm.id

目前是两科 剩下的你就继续往下拼就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文