MySQLで@記号を使う方法!ユーザー定義変数の基本と実例をわかりやすく解説
MySQLで@記号を使用するには、SETコマンドを利用します。@記号は、セッション内で有効なユーザー定義変数を設定する際に使われる記号です。変数に値を格納しておけば、後続のクエリ内でその値を何度でも再利用できるため、条件の共通化や一時的な値の保持に非常に便利です。
@記号によるユーザー定義変数の基本構文
ユーザー定義変数を設定する基本的な構文は以下のとおりです。
SET @anyVariableName := yourValue;
:=は代入演算子で、右側の値を左側の変数に代入します。これにより、以降のSQL文の中で@anyVariableNameを参照できるようになります。
サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable1331
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.51 sec)
テーブルへのデータ挿入
次に、INSERTコマンドを使ってサンプルレコードを登録します。
mysql> insert into DemoTable1331 values(10,'Chris'); Query OK, 1 row affected (0.71 sec) mysql> insert into DemoTable1331 values(101,'David'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1331 values(40,'Bob'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1331 values(30,'Mike'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable1331 values(60,'John'); Query OK, 1 row affected (0.12 sec)
登録データの確認
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認します。
mysql> select * from DemoTable1331;
実行結果は以下のとおりです。
+------+-------+ | Id | Name | +------+-------+ | 10 | Chris | | 101 | David | | 40 | Bob | | 30 | Mike | | 60 | John | +------+-------+ 5 rows in set (0.00 sec)
@変数を実際に使ってみる
それでは、@記号を使ったユーザー定義変数の具体的な使用例を見てみましょう。ここでは変数@Valueに40という値を代入し、その変数をWHERE句の比較条件として利用しています。
mysql> set @Value := 40; Query OK, 0 rows affected (0.00 sec) mysql> select * from DemoTable1331 where Id > @Value;
このクエリを実行すると、Idが40より大きいレコードだけが抽出されます。
+------+-------+ | Id | Name | +------+-------+ | 101 | David | | 60 | John | +------+-------+ 2 rows in set (0.03 sec)
まとめ:@変数活用のポイント
このように、MySQLではSETコマンドと@記号を組み合わせることで、簡単にユーザー定義変数を扱うことができます。主なポイントは以下の3つです。
@変数名 := 値の形式で変数に値を代入できる- 設定した変数は同じセッション内であれば、SELECT文やWHERE句など自由に参照可能
- 頻繁に使う閾値などの値を変数化しておくと、クエリの修正が容易になり可読性も向上する
なお、ユーザー定義変数は接続(セッション)ごとに独立しており、他のセッションから参照することはできません。また、セッションが切断されると変数の値は失われる点にも注意してください。ページング処理や番号付け(ROW_NUMBER的な処理)、動的な条件指定など、さまざまな場面で応用できる便利な機能なので、ぜひ活用してみてください。
-
Linuxシェルの基礎と使い方をわかりやすく解説
コンシューマー向けLinuxディストリビューションには強力なグラフィカルユーザーインターフェース(GUI)が搭載されています。しかし、Linuxは1970年代のUnixの世界にルーツを持つOSであるため、特定のGUIに依存しないアーキテクチャで動作するという特徴があります。テキストベースでシステムにアクセスするための入り口のことをシェル(shell)と呼びます。Linuxでは複数のシェルを利用できます。シェルとは何か?シェルとは、コンピューターのOSとテキストベースでやり取りするための仕組みで、コマンドインタプリタ(命令解釈プログラム)とも呼ばれます。シェルはそれぞれ固有の構文とロジックを持ち
-
ExcelのSIGN関数の使い方|数値の符号を判定する方法を徹底解説
Microsoft ExcelのSIGN関数は、数学/三角関数のひとつで、数値の符号(正・負・ゼロ)を判定して返す関数です。数値が正の場合は「1」、ゼロの場合は「0」、負の場合は「-1」を返します。 SIGN関数とは?書式と引数の説明 SIGN関数の書式は「=SIGN(数値)」です。構文の詳細は以下のとおりです。 数値:任意の実数を指定します。この引数は必須です。 SIGN関数の基本的な使い方 以下の手順に従って、ExcelでSIGN関数を使用してみましょう。 Microsoft Excelを起動します。 新しい表を作成するか、既存のファイルから表を開きます。 結果を表示したいセルに数式を