MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。ユーザー変数には、主にローカル変数とセッション変数が含まれます。

ユーザー定義変数の宣言方法は、@var_name です。変数名は、文字、数字、「.」、「_」、「$」で構成されます。もちろん、文字列または識別子を参照するときに他の文字を含めることもできます (例: @'my-var'、@"my-var"、または @my-var)。

ユーザー定義変数はセッションレベルの変数です。変数のスコープは、それが宣言されているクライアント リンクに制限されます。クライアントが切断されると、すべてのセッション変数が解放されます。

ユーザー定義変数では大文字と小文字は区別されません。

ユーザー定義変数を宣言するには、SET ステートメントを使用します。

@my_var を 1 に設定します。 
@my_var を 1 に設定します。

set を使用しない場合は、= を使用すると比較演算子と見なされる可能性があるため、:= 代入を使用します。

次に例を示します。

スコアランキングを実装するための SQL クエリを記述します。 2 つのスコアが同じ場合、2 つのスコアのランクも同じになります。同順位の次の順位番号は、次の連続する整数値になる必要があることに注意してください。つまり、行と列の間に「穴」があってはなりません。

+—-+——-+
| ID | スコア |
+—-+——-+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+—-+——-+

たとえば、上記のスコア テーブルの場合、クエリによって次のレポート (最高スコア順に並べ替え) が生成されます。

+——-+——+
| スコア | 順位 |
+——-+——+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+——-+——+

クエリステートメント:

スコアを選択、@rank := @rank + (@pre <> (@pre:=Score)) ランク 
スコアから、(SELECT @rank := 0,@pre := -1) INIT 
スコア順で並べ替え

注記:

@rankは成績の順位を示します

@preは前の人のスコアを示します

スコアが前回と異なる場合、@rank = @rank + 1、それ以外の場合は@rank = rank です。

@rank を 1 に、@pre を -1 に初期化します。

実験結果は次のとおりです。

MySQL でのカスタムパラメータの使用に関する上記の詳細な説明は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明
  • MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明
  • MYSQL設定パラメータの最適化の詳細な説明

<<:  Vue.jsはタイムライン機能を実装します

>>:  Linux ブートシステム方式の分析

推薦する

React+Ant Design開発環境をセットアップするための実装手順

基礎1. スキャフォールディングを使用してプロジェクトを作成し、開始する1.1 足場を設置する: n...

VUEユニアプリ開発環境についての簡単な説明

目次1. HBuilderXビジュアルインターフェースを通じて2. vue-cliコマンドで実行する...

単一のMySQLテーブルを復元する手順

休憩中に、眠気を完全に吹き飛ばす電話がかかってきました。「開発者が更新 SQL を書くときに whe...

Python スクリプトを Ubuntu で直接実行する方法

翻訳プログラムを例に挙げてみます。前回はWindowsでのアプリケーションのパッケージ化についてお話...

JavaScript タイマー原理の詳細な説明

目次1. setTimeout() タイマー2. setTimeout() タイマーを停止する3. ...

MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

この記事では、MySQL で複数のテーブルを使用して 1 対多のクエリを使用して最新のデータを取得す...

MySQL における「:=」と「=」の違いの簡単な分析

=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の場合は等号の効果があ...

Nginx の起動に失敗した場合のいくつかのエラー処理の詳細な説明

Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...

MySQL 8.0 に移行する際の注意点 (要約)

パスワードモードPDO::__construct(): サーバーがクライアントに不明な認証方法を要求...

MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....

mysql 5.6.23 winx64.zip インストール詳細チュートリアル

WindowsにMySQLの圧縮バージョンをインストールする方法の詳細については、以下を参照してくだ...

クリックして展開し、全文を読む機能を実現する純粋なCSS

注記記事表示リストインターフェースを開発する場合、情報の基本的な概要を提供するために記事ヘッダーコン...

MySQL シャーディング入門ガイド

序文リレーショナル データベースは、システムのボトルネックになる可能性が高くなります。単一のマシンの...

VSCode 構成 Git メソッドの手順

Git は vscode に統合されており、git コマンドをいくつか記述しなくても、クリックするだ...

MySQL のインデックスの原理とクエリの最適化の詳細な説明

目次1. はじめに1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 2...