Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取查询中每一行在另一列中的位置_Mysql_Sql_Sqlite - Fatal编程技术网

Mysql 获取查询中每一行在另一列中的位置

Mysql 获取查询中每一行在另一列中的位置,mysql,sql,sqlite,Mysql,Sql,Sqlite,我有一个包含两列的表: [身份证,分数] 我想检索以下结果 [位置、id、分数] 例如 id score 1 7 2 3 3 19 我想找回 pos id score 1 3 19 2 1 7 3 2 3 pos id score 1 3 19 2 1 7 3 2 3 我怎么做?提前感谢您的查询可能如下所示: s

我有一个包含两列的表:

[身份证,分数]

我想检索以下结果

[位置、id、分数]

例如

id    score
1      7
2      3
3      19
我想找回

pos    id    score
1      3      19
2      1      7
3      2      3
pos    id    score
1      3      19
2      1      7
3      2      3

我怎么做?提前感谢

您的查询可能如下所示:

select @rownum:=@rownum+1 ‘pos’, t.id, t.score from the_table t, (SELECT @rownum:=0) r order by score desc limit 10;
编辑
顺便说一下,
限制是完全可选的

set @pos=0;
select @pos:=@pos+1 as 'pos',id,score
from exampletb 
order by score desc;
要获得需要使用
@pos:=@pos+1
的位置,它将根据行数的增加而增加,并返回所选行的位置

按分数排序desc
以获得顶部的最大元素

以上查询的结果是否符合您的要求