0

Web インターフェイスに「トップ 20」システムがあり、20 人のプレイヤーがリストされ、レベルごとに並べ替えられます。今、ログインしている男をテーブルの一番下に表示し、彼がどのエントリであるかを表示したいと思います。私はそれがどのようであるべきかを示すためにフォトショップでそれを作りました:

ここに画像の説明を入力

私の質問は、この特定のエントリの番号を取得するにはどうすればよいですか? トップ 20 については、次のクエリがあります。

select username,spielerlevel,member,leader 
from accounts 
where adminlevel = 0 
order by spielerlevel desc 
limit 20

ありがとう。

4

2 に答える 2

4

リスト内の彼の位置の概算は、次のようになります。

SELECT COUNT(1)
FROM accounts
WHERE adminlevel = 0 
  AND spielerlevel<[level]

[level](各ユーザーのレベルに置き換えてください。)

問題は、多くのユーザーが同じレベルを持っていることです。ただし、これはサンプルクエリでも問題になる可能性があります。

于 2013-06-14T07:55:11.627 に答える
0

これは解決策になる可能性があります:

SELECT COUNT(*)+1
FROM accounts
WHERE adminlevel = 0
AND spierlerlevel < (
    SELECT spierlerlevel 
    FROM accounts 
    WHERE username = "CURRENT USER NAME"
);
于 2013-06-14T07:56:45.313 に答える