序文 この記事は主に、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ミニプログラム開発のためのコンポーネント設計仕様
<br />ナビゲーション設計は構造設計における主要なタスクの 1 つです。ソフトウェア...
目次1. フロントエンド制御1. router.js ファイル内 (router.js にそれぞれ静...
1-ドロップダウン選択ボックスのスタイル設定 - ドロップダウン リストを変更します。 2- <...
カルーセルとは何ですか?カルーセル: モジュールまたはウィンドウで、コンピューターでマウスをクリック...
tomcat の containerID を見つけて、tomacat ディレクトリに入ります。 [r...
たくさんのチュートリアルを読みましたが、うまくインストールできませんでした。しばらく試行錯誤した後、...
この記事では、JavaScriptキャンバスで流星の特殊効果を表示するための具体的なコードを参考まで...
序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...
目次サンプルコードレンダリングコード分析要約するサンプルコード var データ = [220, ...
質問Docker が elasticsearch をインストールして起動するときにメモリが不足するシ...
目次1. データソース2. データの総合順位1) 総合ランキング2) 同順位3) 同順位3. データ...
今日は、興味深いトピックについてお話ししましょう。データベースとテーブルを分割することを検討する前に...
まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...
数日前、同僚がポイントモールプロジェクトを受け取りました。このプロジェクトには、カードやクーポンをギ...
目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...