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 でローカルにイメージをインポート/保存/読み込み/削除する方法

推薦する

ApacheのDjangoオンライン展開方法

環境: 1. Windows Server 2016 Datacenter 64 ビット 2. SQ...

CSSでよく使われるフォントスタイルを設定することで様々なフォントの変更が可能(例詳細説明)

CSS フォント プロパティは、テキストのフォント ファミリ、サイズ、太字、スタイル (斜体など)...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

MySQL インフラストラクチャ チュートリアル: クエリ ステートメント実行プロセスの詳細な説明

序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...

Linux crontab コマンドの使用

1. コマンドの紹介contab (cron テーブル) コマンドは、Windows のスケジュール...

ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順

環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...

HTML チュートリアル: よく使われる HTML タグのコレクション (4)

導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...

Webpack ファイル パッケージ化エラー例外

webpack をパッケージ化する前に、次の作業が完了していることを確認する必要があります。 1) ...

ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル (Win7 の場合)

Windows 7 で MySQL 5.7.17 をインストールする方法についてのグラフィック チ...

Windows で MySQL のルート パスワードを忘れた場合にリセットする方法

私のマシン環境: Windows 2008 R2 MySQL 5.6 Baidu で「Windows...

【HTML要素】タグテキストの詳細説明

1. 基本的なテキスト要素を使用してコンテンツをマークアップするまず表示効果を見てみましょう:対応す...

Truncate Table の使用法の説明

テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...

CSS 表示属性のインラインブロックレイアウト実装の詳細な説明

CSS 表示プロパティ注: !DOCTYPE が指定されている場合、Internet Explore...