假设表stu如下
id user_id score
1 3 98
2 34 95
3 7 92
4 25 90
分数已经降序排列了,现在根据输入user_id(7),获取到排名应该是3,怎么写sql语句呢?
假设表stu如下
id user_id score
1 3 98
2 34 95
3 7 92
4 25 90
分数已经降序排列了,现在根据输入user_id(7),获取到排名应该是3,怎么写sql语句呢?
SELECT IF(
EXISTS(
SELECT `score`
FROM `stu`
WHERE `user_id`=7
),
(
SELECT COUNT(1)+1
FROM `stu`
WHERE `score` > (
SELECT `score`
FROM `stu`
WHERE `user_id`=7
)
),
NULL);
4 回答1.3k 阅读✓ 已解决
8 回答1.2k 阅读
3 回答1k 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
1 回答865 阅读✓ 已解决
1 回答657 阅读✓ 已解决
你这个问题描述的不够清晰,你所说的表是已经查过的吗?

简单来写一下:
其实,只是在对表查询的时候,加一列虚拟自增的列。