并排名次跳过 如果出现并列排名,下一个名次将自动跳过 因mysql版本不支持rank排名,只能使用用户变量实现 sql是这样的: CREATE TABLE `s_score` ( `id` int NOT NULL AUTO_INCREMENT, `score` int NOT NULL DEFAULT 0, `name` varchar(20) CHARACTER SET utf8mb4 NULL, PRIMARY KEY (`id`) ); INSERT INTO `s_score` (`name`, `score`) VALUES ('张三', 80), ('小明', 90), ('小红', 60), ('李四', 70), ('赵武', 80), ('梁晨', 87), ('小绿', 69), ('威廉', 69), ('大卫', 91), ('王五', 96), ('赵六', 96), ('小五', 80), ('小龙', 88); 运行下面这段,你会发现rank这列一开始是1,2,3,4,5.。。排名的,再运行一遍就会变成并列名次,这是什么原因,有大佬解答下吗,应该如何调整 SELECT name ,score,@rank :=IF( @temp_score = score, @rank, @rank_incr ) `rank`,@rank_incr := @rank_incr + 1, @temp_score := score FROM s_score s,(SELECT @rank := 0,@temp_rank := NULL,@rank_incr := 1 ) q ORDER BY score DESC |