序文 この記事は主に、MYSQL でランキングを実現し、指定ユーザーランキング関数 (並列ランキング関数) をクエリすることに関する関連コンテンツを紹介し、皆さんの参考と学習のために共有します。詳しい紹介を見てみましょう。 テーブル構造: テーブルtest.testsortを作成します( id int(11) NOT NULL AUTO_INCREMENT、 uid int(11) デフォルト 0 コメント 'ユーザーID', スコア 小数点(10, 2) デフォルト 0.00 コメント 'スコア', 主キー (id) ) エンジン = INNODB AUTO_INCREMENT = 1 文字セット utf8 utf8_general_ci を照合する COMMENT = 'テストソート' ROW_FORMAT = 動的; アイデア:最初に並べ替えてから結果に番号を付けることができます。また、最初に結果をクエリしてから並べ替えて番号を付けることもできます。 例: @rownum := @rownum + 1 この文では、代入に := が使用されています。つまり、最初に @rownum + 1 が実行され、次に値が @rownum に割り当てられます。 (SELECT @rownum := 0) r この文は、rownum フィールドの初期値を 0 に設定する、つまり番号付けが 1 から始まることを意味します。 ランキング達成: 方法1: SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r、(SELECT * FROM testsort ORDER BY score DESC) AS t; 方法2: SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r、テストソート AS t ORDER BY t.score DESC; 結果: 指定したユーザーのランキングを表示します。 方法1: b.* を選択 ( SELECT t.*, @rownum := @rownum + 1 AS rownum (SELECT @rownum := 0) rから、 (SELECT * FROM testsort ORDER BY score DESC) AS t ) AS b WHERE b.uid = 222; 方法2: b.* を選択 ( SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r、テストソート AS t t.score で並べ替え DESC ) は b であり、b.uid は 222 です。 結果: 同順位(同じスコアで同じ順位)を達成するには: 選択 オブジェクトID、 obj.スコア、 場合 @rowtotal = obj.score の場合 @rownum @rowtotal := obj.score の場合 @rownum :=@rownum + 1 @rowtotal = 0 の場合 @rownum :=@rownum + 1 END AS 行番号 から ( 選択 uid、 スコア から テストソート 注文する スコアDESC ) AS オブジェクト、 (SELECT @rownum := 0 、@rowtotal := NULL) 指定されたユーザーのランキングを照会します。 合計を選択します。* FROM (選択 オブジェクトID、 obj.スコア、 場合 @rowtotal = obj.score の場合 @rownum @rowtotal := obj.score の場合 @rownum :=@rownum + 1 @rowtotal = 0 の場合 @rownum :=@rownum + 1 END AS 行番号 から ( 選択 uid、 スコア から テストソート 注文する スコアDESC ) AS オブジェクト、 (SELECT @rownum := 0 、@rowtotal := NULL) r) AS total WHERE total.uid = 222; 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Maven+Tomcat 基本イメージを構築する Docker の実装
>>: WeChatミニプログラム開発のためのコンポーネント設計仕様
MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...
目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...
1. リストシンボルを設定するlist-style-type: attribute; //リストの...
HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...
MySQL 8.0圧縮パッケージのインストール方法、詳細は次のとおりです知らせ:オペレーティング シ...
JS で関数を定義する 3 つの方法例を挙げて説明しましょう。 <スクリプト> //メソ...
序文Nodejs はサーバーサイド言語です。開発中、登録やログインなどでは、判断のためにフォームを通...
HTTP圧縮とは場合によっては、比較的大きなメッセージ データがクライアントとサーバー間で送信され、...
目次1. コンパイラコードフォーマット仕様設定2. Vueテンプレートの設定1. コンパイラコードフ...
1: タグセレクタータグセレクターはすべてのタグに使用されます。ここでは p を例に挙げます。つまり...
目次序文入力ボックスコンポーネントレイアウトvモデルデータ検証ルール設計形状サブコンポーネントは検証...
1. ログセグメンテーションのためのLog4j 1) log4j-1.2.17.jar、tomcat...
Windows: NTFS、FATをサポートLinux は次のファイル形式をサポートしています: C...
前回の記事「Zen Coding: HTML/CSS コードを素早く記述する方法」を公開した後、一部...
tcpdump は、ネットワークの問題のトラブルシューティングに効果的に役立つ、柔軟で強力なパケット...