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 ブートシステム方式の分析

推薦する

Vue はモバイル端末にマルチグリッド入力ボックスを実装

最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手で...

div の特定の実装は自動的に折り返されず、HTML で折り返されないよう強制されます。

1. 改行なしを実現するには<nobr>タグを使用するコードをコピーコードは次のとおりで...

MySQL 8.0 ウィンドウ関数の紹介と概要

序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...

Vue のミックスインの使用方法の詳細な説明

目次序文1. Mixin とは何ですか? 2. Mixin はいつ使用すればよいですか? 3. Mi...

Web ページの HTML コードの説明: 順序付きリストと順序なしリスト

このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...

CSS で実装された円形のプログレスバー

成果を達成する 実装コードhtml <div class="wrap"&g...

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...

MySQL の binlog ログと、binlog ログを使用してデータを回復する方法を説明します。

ご存知のとおり、binlog ログは MySQL データベースにとって非常に重要です。万が一、データ...

Viteの新しい体験の詳細な説明

Vite とは何ですか? (フロントエンドの新しいおもちゃです) Vite は、ネイティブ ES モ...

Linux calコマンドの使用

1. コマンドの紹介cal (カレンダー) コマンドは、現在の日付または指定された日付のグレゴリオ暦...

js は、州、市、地区の 3 段階の選択カスケードを実装します。

この記事では、省、市、地区の3段階選択を実現するためのjsの具体的なコードを紹介します。具体的な内容...

Nginx タイムアウト設定の詳細な説明

最近、プロジェクトで nginx を使用し、バックエンドで Java を使用しました。バックエンドで...

Ubuntu でディスク容量不足により MySQL が起動しない場合の解決策

序文最近、データベースのテーブルに 2 つのフィールドを追加しました。その後、ディスク容量不足のよう...

javascript:void(0) の意味と使用例

voidキーワードの紹介まず、void キーワードは JavaScript で非常に重要なキーワード...

Javascript の奇妙な点をご存知ですか?

私たちのベテランの先人たちは、数え切れないほどのコードを書き、数え切れないほどの落とし穴に陥ってきま...