【MySQL】SELECT INTOを使ってクエリ結果を変数に格納する方法
MySQLでは、SELECT ... INTOコマンドを使用することで、クエリの実行結果をユーザー定義変数(@変数)に簡単に格納できます。この記事では、基本的な構文から実際の動作例まで、順を追ってわかりやすく解説します。
基本構文
クエリの結果を変数に設定するには、次のような構文を使用します。
select カラム名1 into @任意の変数名 from テーブル名 where カラム名2='任意の値';
変数の値を確認する方法
変数に値が正しく格納されているかどうかは、以下のようにSELECT文で確認できます。
select @任意の変数名;
サンプルテーブルを作成する
まず、実際に動きを理解するためにテーブルを作成しましょう。ここでは学生情報を管理する「StudentInformation」テーブルを作成します。
mysql> create table StudentInformation -> ( -> StudentId int, -> StudentName varchar(100), -> StudentAge int -> ); Query OK, 0 rows affected (0.62 sec)
テストデータを挿入する
続いて、INSERT文を使っていくつかのレコードを追加します。
mysql> insert into StudentInformation values(1,'John',23); Query OK, 1 row affected (0.21 sec) mysql> insert into StudentInformation values(2,'Adam',24); Query OK, 1 row affected (0.17 sec) mysql> insert into StudentInformation values(3,'Bob',21); Query OK, 1 row affected (0.20 sec) mysql> insert into StudentInformation values(4,'Carol',20); Query OK, 1 row affected (0.17 sec) mysql> insert into StudentInformation values(5,'Mike',25); Query OK, 1 row affected (0.13 sec)
登録したレコードを表示する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from StudentInformation;
以下が出力結果です。
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | John | 23 | | 2 | Adam | 24 | | 3 | Bob | 21 | | 4 | Carol | 20 | | 5 | Mike | 25 | +-----------+-------------+------------+ 5 rows in set (0.00 sec)
クエリ結果を変数に格納する
それでは本題です。次のクエリを実行すると、「Adam」という名前の学生の年齢を変数@yourAgeに格納できます。
mysql> select StudentAge into @yourAge from StudentInformation where StudentName='Adam'; Query OK, 1 row affected (0.03 sec)
変数の中身を確認する
変数@yourAgeに何が格納されているかを確認してみましょう。
mysql> select @yourAge;
出力結果には、Adamの年齢である「24」が表示されます。
+----------+ | @yourAge | +----------+ | 24 | +----------+ 1 row in set (0.00 sec)
まとめ
SELECT ... INTO @変数名を使えば、特定の条件に一致するカラムの値をセッション内で再利用可能な形で保持できます。後続のクエリで同じ値を使い回したい場合や、ストアドプロシージャ内で一時的に値を保持したい場合などに非常に便利な機能です。なお、複数行が該当する場合は意図しない値が代入される可能性があるため、WHERE句で一意に絞り込むことをおすすめします。
-
MySQLでクエリの実行結果を変数に代入する方法をわかりやすく解説
MySQLでクエリ結果を変数に代入する基本MySQLでは、@変数名 の形式でユーザー定義変数を使用することで、クエリの実行結果を変数に格納できます。代入には :=(代入演算子)を使い、SELECT文の中で直接値を取得するのが一般的な方法です。この記事では、実際にテーブルを作成し、クエリ結果を変数に代入するまでの一連の手順をサンプルコード付きで紹介します。1. サンプルテーブルを作成するまず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable1864 ( Id int, FirstName var
-
MySQLのSELECT文をカスタム変数に設定する方法
この記事では、MySQLでSELECT文(クエリ)の結果をカスタム変数(ユーザー定義変数)に設定する方法を解説します。まずサンプル用のテーブルを作成してデータを挿入し、その後SET句と「@」から始まる変数を使ってクエリを変数に格納する手順を、実際の実行例とともに見ていきましょう。 1. テーブルを作成する 最初に、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable2013 -> ( -> Name varchar(20)