56,687
社区成员
发帖
与我相关
我的任务
分享
SELECT
(select count(1)+1 from `battlezone_rank` where `rank_test`>t.`rank_test`) as rank,
`rank_test`,
FROM
`battlezone_rank` t
where
userid_id='xxx'
SET @rank=0;
select rank
from
(
SELECT @rank := @rank +1 AS rank, `rank_test`,
FROM `battlezone_rank`
ORDER BY `rank_test` DESC
) t
where user_id='xxx'
select rt.user_id,(select count(*) from battlezone_rank where user_id>rt.user_id)+1 as rank
from rank_test rt
order by user_id desc;
--count(*)只能用在普通排序里面,用在分组排序里面,就不对了!
--比如:按成绩分组排序:
有8个人的成绩:
a 80
b 90
c 70
d 70
e 80
f 80
d 90
g 90
排序结果为:
name grade No
a 80 2
b 90 1
c 70 3
d 70 3
e 80 2
f 80 2
d 90 1
g 90 1
--楼主:高人,你用count(*)排个给我看看?