1 ユーザー変数の概要ユーザー変数は、ユーザーが定義する変数です。ユーザー変数に値を割り当てて、スカラー式を通常使用できる場所であればどこでも使用できます。 ユーザー変数を導入する前に、set ステートメントまたは select ステートメントを使用して変数を定義し、値を割り当てる必要があります。そうしないと、変数には空の値しか含まれません。 ユーザー変数は接続に関連付けられます。つまり、あるクライアントによって定義された変数は、他のクライアントでは表示または使用できません。クライアントが終了すると、そのクライアントによって接続されたすべての変数が自動的に解放されます。 2 ユーザー変数の定義set ステートメントは、システム変数またはユーザー変数に値を割り当てるために使用できます。ユーザー変数の定義は次のとおりです。 SET @var_name = expr [, @var_name = expr] ... SELECT ステートメントを使用して以下を定義することもできます。 @var_name := expr [, @var_name = expr] を選択... ユーザー変数: 「@」で始まり、「@var_name」の形式になっていて、ユーザー変数を列名と区別します。列の指定がない限り、任意のランダム、複合、スカラー式を使用できます。 変数名は、現在の文字セットの英数字と「_」、「$」、「.」で構成できます。デフォルトの文字セットは ISO-8859-1 Latin1 です。これは、mysqld の --default-character-set オプションで変更できます。 SET の場合、値を割り当てるために = または := を使用できますが、SELECT の場合、値を割り当てるために := のみを使用できます。 単純な SELECT ステートメントを使用して、定義されたユーザー変数の値を照会できます。 3 ユーザー変数の使用3.1 セットを通した例変数に値を割り当てるために使用されるスカラー式は、複合式にすることができます。計算、関数、システム スカラー、その他のユーザー変数、およびサブクエリが許可されます。次に、SELECT ステートメントを通じてユーザー変数の値を取得し、その結果として 1 行のテーブルが生成されます。 mysql> @var1=1、@var2='vartest'、@var3=abs(-2)、@var4=(mysql.user から count(*) を選択) を設定します。 mysql> @var1、@var2、@var3、@var4 を選択します。 +-------+---------+-------+-------+ | @var1 | @var2 | @var3 | @var4 | +-------+---------+-------+-------+ | 1 | vartest | 2 | 25 | +-------+---------+-------+-------+ ユーザー変数を割り当てるために使用される式では、他のユーザー変数も指定できます。MySQL は、変数に値を割り当てる前に、まずすべての式の値を判定することに注意してください。 例えば: mysql> @varA = 2 を設定します。 次の 2 つの例では、varB の値が異なります。 例1: mysql> @varA = 3、@varB = @varA を設定します。 mysql> @varB を選択します。 +-------+ | @varB | +-------+ | 2 | +-------+ 例2: mysql> @varA = 3 を設定します。 mysql> @varB = @varA を設定します。 mysql> @varB を選択します。 +-------+ | @varB | +-------+ | 3 | +-------+ 3.2 選択による例set ステートメントと比較して、select を使用して変数を定義すると、表形式の結果が返されます。 mysql> @var1:=1、@var2:='vartest'、@var3:=abs(-2)、@var4:=(mysql.user から count(*) を選択) を選択します。 +----------+------------------+----------------+------------------------------------------+ | @var1:=1 | @var2:='vartest' | @var3:=abs(-2) | @var4:=(mysql.user から count(*) を選択) | +----------+------------------+----------------+------------------------------------------+ | 1 | vartest | 2 | 25 | +----------+------------------+----------------+------------------------------------------+ mysql> @var1、@var2、@var3、@var4 を選択します。 +-------+---------+-------+-------+ | @var1 | @var2 | @var3 | @var4 | +-------+---------+-------+-------+ | 1 | vartest | 2 | 25 | +-------+---------+-------+-------+ +-------+---------+-------+-------+ | 1 | vartest | 2 | 25 | +-------+---------+-------+-------+ 4 ユーザー変数の考慮4.1 ユーザー変数は where 句または having 句で使用されます。最初に別のステートメントで定義する必要があります。たとえば、次の例では、最初のクエリは結果を返しません。定義されて初めて、後続のクエリで出力されます。 mysql> mysql.user から @H:='localhost' を選択します (host = @H); 空のセット (0.00 秒) mysql> @H:='localhost' を選択します。 +-----------------+ | @H:='ローカルホスト' | +-----------------+ | ローカルホスト | +-----------------+ セット内の 1 行 (0.00 秒) mysql> @H:='localhost'、mysql.user から user を選択します (host = @H); +-+---------------------------------+ | @H:='localhost' | ユーザー | +-+---------------------------------+ | ローカルホスト | | | ローカルホスト | ジェシー | | ローカルホスト | ローカル | | ローカルホスト | ルート | | ローカルホスト | ユーザータブ更新 | +-+---------------------------------+ 4.2 ユーザー変数はセッション レベルにあります。クライアントを閉じるかログアウトすると、すべてのユーザー変数は消えます。カスタム変数を保存する場合は、テーブルを作成し、そのテーブルにスカラーを挿入する必要があります。 4.3 ユーザー変数名では大文字と小文字は区別されません。 4.4 未定義の変数は null に初期化されます。 5 補足知識: mysql文dodo ステートメントでは、1 つ以上のスカラー式が使用され、MySQL はそれらを 1 つずつ処理しますが、式の結果は表示しません。たとえば、結果を確認せずにバックグラウンドで何かを実行する関数を呼び出すことができます。 例えば: mysql> sleep(5) を実行します。 クエリは正常、影響を受けた行は 0 行 (5.00 秒) 要約するこれで、MySQL ユーザー変数と set ステートメントに関するこの記事は終了です。MySQL ユーザー変数と set ステートメントに関するより詳しい情報については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
目次1. 短絡判定2. オプション連鎖演算子 (?) 3. ヌル合体演算子 (??) 4. 終了関数...
2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...
1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...
1. 解凍版のインストール(1)圧縮パッケージをダウンロードし、ディスクの場所に解凍します。圧縮パッ...
お使いのコンピュータが Mac の場合、homebrew を使用して MySQL をインストールする...
目次1 関数カリー化とは何ですか? 2 カレーの役割と特徴2.1 パラメータの再利用2.2 早期復帰...
1. DDLアトミック性の概要8.0 より前は、統一されたデータ ディクショナリ dd はありません...
第二に、キーワードのランキングは、Webページの表示速度にも関係しています(参照:キーワードランキン...
序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...
1. yumソースを更新するCentOS7 のデフォルトの yum リポジトリの PostgreSQ...
前回のブログ投稿では、レジストリのプライベート ウェアハウスについて説明しました。今日は、Harbo...
閉鎖サービス nginx 停止systemctl 停止 nginx起動するサービス nginx 開始...
Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...
Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...
Unicode 署名 BOM - BOM とは何ですか? BOM は Byte Order Mark...