スコア テーブルからユーザー ランクを決定するための非反復的アプローチ
ソートされていないスコアのテーブルを扱う場合、次のことが必要になる場合があります。他のすべてのプレイヤーの中でのユーザーのランクを決定します。これはさまざまな方法で実現できますが、この記事では SQL を使用した非反復的なアプローチに焦点を当てます。
問題を理解する
この問題では、ランクの取得が必要です。スコアとイニシャルを含むが順序付けされていないテーブルからユーザーを取得します。テーブル全体をループして並べ替えることが可能であることが知られていますが、この記事ではより効率的な SQL ベースのソリューションを検討しています。
SQL ソリューション
次の SQL
<code class="sql">SELECT s1.initials, ( SELECT COUNT(*) FROM scores AS s2 WHERE s2.score > s1.score )+1 AS rank FROM scores AS s1</code>
このステートメントは次の手順を実行します。
利点
非反復アプローチにはいくつかの利点があります:
以上がSQL を使用して、ソートされていないスコア テーブルからユーザー ランクを効率的に決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。