MySQLのSELECT INTOでユーザー定義変数に値を格納する方法
MySQLでは、SELECT ... INTO構文を使うことで、クエリの実行結果をユーザー定義変数(@変数名)に直接格納できます。本記事では、実際のコード例を通じて、その基本的な使い方を手順ごとにわかりやすく解説します。
1. サンプルテーブルを作成する
まず、以下のCREATE TABLE文でテーブルを作成します。
mysql> create table DemoTable1483 -> ( -> Salary int -> ); Query OK, 0 rows affected (0.41 sec)
2. レコードを挿入する
次に、INSERTコマンドを使ってテーブルにデータを追加します。
mysql> insert into DemoTable1483 values(100); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable1483 values(500); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1483 values(400); Query OK, 1 row affected (0.12 sec)
3. テーブルの内容を確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1483;
実行すると、次のような出力が得られます。
+--------+ | Salary | +--------+ | 100 | | 500 | | 400 | +--------+ 3 rows in set (0.00 sec)
4. SELECT INTOでユーザー定義変数に値を格納する
以下のクエリは、SUM関数で求めた給与の合計値を、ユーザー定義変数「@TotalSalary」に格納する例です。
mysql> select sum(Salary) into @TotalSalary from DemoTable1483; Query OK, 1 row affected (0.00 sec)
5. 変数の値を表示する
格納された変数の値は、通常のSELECT文で簡単に確認できます。
mysql> select @TotalSalary;
実行結果は以下の通りです。
+--------------+ | @TotalSalary | +--------------+ | 1000 | +--------------+ 1 row in set (0.00 sec)
まとめ
SELECT ... INTO @変数名を使えば、集計結果などのクエリ結果を変数に保存し、後続の処理やストアドプロシージャ内で再利用できます。なお、ユーザー定義変数はセッション単位で有効となるため、同じ接続内でのみ参照できる点に注意してください。
-
MySQLのSELECT文をカスタム変数に設定する方法
この記事では、MySQLでSELECT文(クエリ)の結果をカスタム変数(ユーザー定義変数)に設定する方法を解説します。まずサンプル用のテーブルを作成してデータを挿入し、その後SET句と「@」から始まる変数を使ってクエリを変数に格納する手順を、実際の実行例とともに見ていきましょう。 1. テーブルを作成する 最初に、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable2013 -> ( -> Name varchar(20)  
-
MySQLストアドプロシージャでカラムの値を変数に格納する方法
MySQLのストアドプロシージャ内で変数を宣言するには、DECLARE文を使用します。さらにSELECT ~ INTO構文を組み合わせることで、テーブルのカラム値を変数に格納することができます。ここでは、実際にサンプルテーブルを作成し、ストアドプロシージャ経由でカラムの値を変数に取得する手順を解説します。1. サンプルテーブルの作成まず、以下のようにテーブルを作成します。mysql> create table DemoTable2034-> (-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> StudentN