mysql查询排序疑问解答

MySQL里能不能排序后带有名次(1.2.3.....)并且重复了按照(1.2.2.4 或者1.2.2.3 )的顺序排列

SELECT (@i:=@i+1) AS i,t.* FROM tablename t,(SELECT @i:=0) AS it ORDER BY t.字段名--------这条sql可以给你排序好的查询结果添加序号i,但是重复的问题还没有什么想法

set num = 0;
set a = 0;
select if(@a<t.b,@num=num,@num=@num+1) as 名次,@a=t.b as 成绩 from t ORDER BY t.b;

SET @num = 1;
SET @a = 0;
SELECT
IF (
t.b < @a ,@num := @num + 1 ,@num :=@num
) AS 名次 ,@a := t.b AS 成绩
FROM
test AS t
ORDER BY
t.b DESC;


Mysql的函数Rank,你可以试一下。他的排名效果是1,2,2,4。