MySQLは変数を使用してさまざまなソートを実装します

MySQLは変数を使用してさまざまなソートを実装します

コアコード

-- 以下では、MySQLでのソート列の実装を示します -- テストデータ CREATE TABLE tb
(
スコアINT
);
挿入tb選択 
5 結合 すべて選択 
4 すべて結合 選択 
4 すべて結合 選択 
4 すべて結合 選択 
3 結合 すべて選択 
2 結合 すべて選択
1;
--1. row_number ソート SET @row_number =0;
SELECT @row_number := @row_number+1 AS row_number,score 
tbより 
ORDER BY スコア DESC ;
+------------+--------+
| 行番号 | スコア |
+------------+--------+
| 1 | 5 |
| 2 | 4 |
| 3 | 4 |
| 4 | 4 |
| 5 | 3 |
| 6 | 2 |
| 7 | 1 |
+------------+--------+
--2. 高密度ランクソート SET @dense_rank = 0, @prev_score = NULL;
SELECT @dense_rank :=IF(@prev_score=score,@dense_rank,@dense_rank+1) AS decnse_rank,
  @prev_score := スコア AS スコア 
tbより 
ORDER BY スコア DESC ; 
+-------------+--------+
|decns_rank | スコア |
+-------------+--------+
| 1 | 5 |
| 2 | 4 |
| 2 | 4 |
| 2 | 4 |
| 3 | 3 |
| 4 | 2 |
| 5 | 1 |
+-------------+--------+
--3. ランクソート SET @row=0,@rank=0,@prev_score=NULL;
@row:=@row+1 を ROW として選択します。
    @rank:=IF(@prev_score=score,@rank,@row) AS ランク、
    @prev_score:=スコア AS スコア
tbより 
ORDER BY スコア DESC;
+------+------+-------+
| ROW | ランク | スコア |
+------+------+-------+
| 1 | 1 | 5 |
| 2 | 2 | 4 |
| 3 | 2 | 4 |
| 4 | 2 | 4 |
| 5 | 5 | 3 |
| 6 | 6 | 2 |
| 7 | 7 | 1 |
+------+------+-------+

以下もご興味があるかもしれません:
  • MySQL 8.0.12 のインストールと環境変数の設定チュートリアル (Win10 の場合)
  • MySQLでグローバル変数とセッション変数を設定する2つの方法の詳細な説明
  • MySQL 5.6.23 のインストールと設定環境変数のチュートリアル
  • MySQL 8 の新機能: 永続的なグローバル変数を変更する方法
  • MySQLクエリステートメント内のユーザー変数のコード分析
  • MySQL 変数宣言とストアド プロシージャの分析
  • いくつかの重要なMySQL変数
  • MySQL ストアド プロシージャにおける変数の宣言と設定の違いについて簡単に説明します。
  • MySQL 変数の原理と応用例

<<:  vite2.x は ant-design-vue@next コンポーネントのオンデマンド読み込みを実装します。

>>:  Docker でローカルにイメージをインポート/保存/読み込み/削除する方法

推薦する

初心者がHTMLタグを学ぶ(2)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

divコンテナ内の背景色または画像は、サイズが大きくなるにつれて大きくなります。

コードをコピーコードは次のとおりです。高さ:自動 !重要;高さ:550px;最小高さ:550px; ...

DockerでGPUを使用するプロセスの詳細な説明

目次tf-gpu をダウンロード取得したtf-gpuイメージに基づいて独自のイメージを構築するイメー...

Nginx レベルで基本的なユーザー認証を構成する手順を完了します。

序文アプリケーション シナリオ: おそらく、内部 Web サイトは外部ユーザーにアクセス可能である必...

IEウェブページのポップアップウィンドウの共通パラメータは自分で設定できます

ポップアップは、現在のウィンドウにメニューツールバーがあるかどうかとは関係ありません。ページにスクリ...

MySql データベース クエリの特殊コマンド

まずMySQLのインストールMySQLソフトウェアをダウンロードし、インストールパスを変更しますMy...

CSS3.0 でネオンボタンアニメーション効果を実装するためのサンプルコード

今日は、CSS 3.0 で実装されたネオン ボタン アニメーション効果を紹介します。効果は次のとおり...

docker を使用して Spring Boot をデプロイし、Skywalking に接続する方法

目次1. 概要1. スカイウォーキング入門2. スカイウォーキング建築3. スカイウォーキングはどの...

Linux コマンドラインターミナルで画面を分割するための 2 つのツール

ターミナル分割画面ツールは2つあります: screen と tmux 1. 画面分割を使用する(上下...

CentOS7 で MySQL データベースにリモート接続できない理由と解決策

序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...

QQブラウザ機能を実装するためのCSS

コード知識ポイント1. fullpage.jsを組み合わせてフルスクリーンスクロールを実現する2. ...

テーブルを使用する場合と CSS を使用する場合 (経験の共有)

TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...

MySQLで行を列に変換する方法

MySQL の行から列への操作いわゆる行から列への操作は、テーブルの行情報を列情報に変換することです...

Docker イメージのダウンロードが遅すぎる場合の解決策

Docker イメージのダウンロードが停止したり、遅すぎたりするネットでいろいろな方法を検索しました...

JavaScript で配列の変更を監視する方法

序文以前、defineProperty を紹介したとき、オブジェクトの変更のみを監視でき、配列の変更...