序文 この記事は主に、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ミニプログラム開発のためのコンポーネント設計仕様
目次1. React.FC<> 2. クラスxxはReact.Componentを拡張し...
私が使用しているデータベースはMySQLデータベースバージョン5.7ですまずデータベーステーブルを自...
目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...
目次1. 繰り返し宣言1.1 変数1.2 しましょう1.3 定数2. 可変プロモーション2.1 変数...
最近、MySQL 5.6 を導入しましたが、デフォルトでは MySQL はローカル サービスのみを許...
前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...
目次ベーシックエディションステップ1: Axiosを構成するステップ2: リクエストをカプセル化する...
JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明最近、...
Activiti7 の正式リリース以降、SpringBoot2.x との統合開発を全面的にサポートし...
この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...
1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...
解決親要素に position:relative を追加します。子要素に position:abso...
jQueryは劇場の座席選択と予約の効果を実現します。参考までに、具体的な内容は次のとおりです。効果...
今日、redis をインストールしたところ、今までになかったいくつかのエラーが発生しました。ここで記...
目次1. 正規表現とは何か1. 正規表現の特徴2. 正規表現の使用2. 正規表現における特殊文字1....