一.mysql数据库排序:
1.不管数据相同与否,排名依次排序(1,2,3,4,5,6,7.....)
SELECT w.* , (@rownum := @rownum + 1) AS rank1 FROM `work` w,(SELECT @rownum := 0) r ORDER BY salary ;
需要一个rownum来实现排序,用select语句中给变量rownum赋初始值,每次执行+1;
2.只要数据有相同的排名就一样,排名依次排序(1,2,2,3,3,4,5.....)
SELECT
w.* ,
(CASE
WHEN @rowtotal = w.`salary` THEN @rownum
WHEN @rowtotal := w.`salary` THEN @rownum := @rownum+1
WHEN @rowtotal = 0 THEN @rownum :=@rownum + 1
END) rank2
FROM `work` w,(SELECT @rownum := 0,@rowtotal := NULL) r
ORDER BY salary DESC;
用rownum实现排序,r