sql >> データベース >  >> RDS >> Mysql

プレーヤーランク(および周囲のプレーヤー)を備えた高速mySQLリーダーボード

    代替テーブル
    ALTER TABLE テーブルの構造を変更することです。
    間違えたときや、やり方に気が変わったときに使用します。
    何をするのかわからない場合は、使用しないでください。使用してください。

    インデックス
    INDEX 並べ替えを速くすることです 、常に WHEREで定期的に使用する列にインデックスを割り当てます 句またはORDER BY 句。
    並べ替えて、なしでうまく選択できます。 インデックス、ただ遅い。

    ランキング
    最上位のプレーヤーを一番上にリストしたい場合:

    SELECT field1, field2, ... FROM players ORDER BY score DESC LIMIT 25  
    

    上位25名のハイスコアプレーヤー、最高スコアが最初に表示されます(逆の順序で並べ替えられます DESC 高いものから低いものへ)

    ファンシーランキング

    SELECT @rank:= 0; -- <<-- First run this query!
    
    SELECT @rank:= @rank + 1 as rank, s.* FROM (
      SELECT field1, field2, ... FROM players ORDER BY score DESC LIMIT 25  
    ) s; --<<-- than this one.
    

    ああ、基本的なSQLのことを読んでください。
    Google forSQL tutorial

    頑張ってください。




    1. JPAネイティブクエリを使用して同じ名前の複数の列を選択するにはどうすればよいですか?

    2. MySQLのGRANTのテーブル名にワイルドカードを使用できますか

    3. OracleUNIONおよびORDERBYに関する奇妙な問題

    4. PL / SQLのファイルからBLOBを取得する方法は?