我有我的 mysql 表posts
,其中存储了我论坛的所有帖子。就像这样:
id uid thread post title text time
(int) (int) (varchar) (int) (varchar) (text) (int)
现在我想在用户个人资料上显示排名(帖子数量的排名)。我试过这样的事情:
set @rownum := 0;
SELECT @rownum := @rownum + 1 AS rank, uid, count(id)
FROM `posts` GROUP BY uid ORDER BY count(id)
但它返回的不是正确的数据。uid 和 count(id) 匹配,但排名错误。我的条目是这样的:
rank uid count(id)
1 1 214
我是用户 1,我有 214 个帖子,但这不是排名 1。还有其他条目,例如:
rank uid count(id)
8 22 674
我怎样才能让查询给出正确的排名?