实现代码如下
SELECT
s.Score AS Score,
CASE
WHEN @pre = Score THEN --第一步进行判断
@pic + 0
WHEN @pre := Score THEN --当第一个when后面不成立的时候第二个when后面进行赋值
@pic := @pic + 1
ELSE
@pic := @pic + 1 --当分数为0时上面两个when都不成立时执行
END AS Rank
FROM
Scores AS s,
(SELECT @pre := NULL ,@pic := 0) AS init --注意:这个地方必须给括号外的取个别名,别名可以任意,但不能不要
ORDER BY
Score DESC
上面的 SELECT @pre := NULL是给@pre赋值