MySQL-字段间的结果怎么显示名次
表:
name class A B C D E
张三 五年级 98 88 92 90 88
像这种 A、B、C、D、E 五个是课程,怎么让张三这个人的课程加上排名。
比如 A 第一, C第二, D第三 B第四 E第五
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
表:
name class A B C D E
张三 五年级 98 88 92 90 88
像这种 A、B、C、D、E 五个是课程,怎么让张三这个人的课程加上排名。
比如 A 第一, C第二, D第三 B第四 E第五
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
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
目前是两科 剩下的你就继续往下拼就行了