0

私は問題があります

テーブルのコンテンツを MySQL で並べ替え、結果をゲームのランキング テーブルとして使用したい:

スコア: ユーザー | ポイント

私はこのクエリを持っています:SELECT * FROM scores ORDER BY score DESC LIMIT 0,10

クエリ結果に列を追加して、すべてのレコードを累進番号で表示するにはどうすればよいですか?

すなわち

私のクエリが表示しているもの:

mike        8000
al          7569
frank       7296
alex        7000
dana        6237
mark        6201
gankz       5766
mickeymouse 5420
donaldduck  5126
user        2569

表示したいもの:

**1** mike 8000
**2** al 7569
**3** frank 7296
**4** alex 7000
**5** dana 6237
**6** mark 6201
**7** gankz 5766
**8** mickeymouse 5420
**9** donaldduck 5126
**10** user 2569
4

3 に答える 3

3

試す

set @row_num = 0; 
SELECT @row_num := @row_num + 1 as row_index, user, points 
FROM scores ORDER BY score DESC LIMIT 0,10
于 2012-12-07T14:02:21.377 に答える
1

試す

SELECT TOP 10 CONVERT(INT, ROW_NUMBER() OVER (ORDER BY Points)) AS RowRank, Users, Points FROM Scores
于 2012-12-07T14:10:43.483 に答える
0

私はまだコメントを書くことができないので、select ステートメントを実行するときは SELECT * を使用しない方がよいことを指摘したいと思います。名前とスコアだけを取得する場合は、それらのみを選択します。

select * を使用しない理由は何ですか?

于 2012-12-07T14:08:52.810 に答える