我有一个包含两列的表格:
[ID,得分]
我想检索以下结果
[职位,身份,分数]
例如
id score
1 7
2 3
3 19
我想要检索
pos id score
1 3 19
2 1 7
3 2 3
我该怎么办?提前致谢
答案 0 :(得分:2)
您的查询可能如下所示:
select @rownum:=@rownum+1 ‘pos’, t.id, t.score from the_table t, (SELECT @rownum:=0) r order by score desc limit 10;
编辑
<{1}}完全是可选的
答案 1 :(得分:0)
set @pos=0;
select @pos:=@pos+1 as 'pos',id,score
from exampletb
order by score desc;
要获得使用@pos:=@pos+1
所需的位置,它将按行增加递增,并返回所选行的位置。
和order by score desc
获取最高元素。
以上查询的结果为您想要的内容
pos id score
1 3 19
2 1 7
3 2 3