私のmysqlテーブルposts
を持っています。私のフォーラムのすべての投稿が保存されています。これは次のようなものです:MySQL - count()とGROUP BYのランキング
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
は、正しいランクを出すにはどうすればよいですか?
これは 'ORDER BY count(id)DESC'ですよね? – mellamokb
@mellamokb DESCとASCでは動作しません – ninov
どういう意味でしょうか? – mellamokb