MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでクエリ結果を変数に保存する方法|SETコマンドの使い方を徹底解説

MySQLでは、SETコマンドを使うことで、クエリ(SQL文)の実行結果をユーザー定義変数に保存できます。集計結果や特定のカラムの値を後続の処理で再利用したい場合に非常に便利な機能です。

基本構文

SET @anyVariableName = ( yourQuery);

変数名には「@」を付けます。括弧内に実行したいクエリを記述すると、その結果が変数に代入されます。

実際に試してみよう:サンプルテーブルの作成

1. テーブルの作成

まず、動作を確認するためのテーブルを作成します。以下がテーブル作成用のクエリです。

mysql> create table QueryResultDemo
    -> (
    -> Price int
    -> );
Query OK, 0 rows affected (0.59 sec)

2. レコードの挿入

続いて、テーブルに複数のレコードを挿入します。INSERT文は以下の通りです。

mysql> insert into QueryResultDemo values(100);
Query OK, 1 row affected (0.17 sec)

mysql> insert into QueryResultDemo values(20);
Query OK, 1 row affected (0.13 sec)

mysql> insert into QueryResultDemo values(200);
Query OK, 1 row affected (0.10 sec)

mysql> insert into QueryResultDemo values(80);
Query OK, 1 row affected (0.15 sec)

3. データの確認

SELECT文を使って、テーブル内の全レコードを表示してみましょう。

mysql> select *from QueryResultDemo;

実行結果は以下の通りです。

+-------+
| Price |
+-------+
|   100 |
|     20 |
|   200 |
|    80 |
+-------+
4 rows in set (0.00 sec)

クエリ結果を変数に代入する

それでは本題です。SETコマンドを使って、Priceカラムの合計値(SUM関数の結果)を変数に保存してみましょう。

mysql> Set @TotalPrice = (select sum(Price) from QueryResultDemo);
Query OK, 0 rows affected (0.00 sec)

変数の中身を確認する

変数「TotalPrice」に正しく値が格納されたかどうかは、SELECT文で簡単に確認できます。

mysql> select @TotalPrice;

実行結果:

+-------------+
| @TotalPrice |
+-------------+
|          400 |
+-------------+
1 row in set (0.00 sec)

Priceカラムの合計である「400」が変数に保存されていることがわかります。

まとめ

  • MySQLでクエリ結果を変数に保存するには SET @変数名 = (クエリ); を使用する
  • 変数はセッション単位で有効であり、同じ接続内なら何度でも参照できる
  • SUMやCOUNTなどの集計結果を一時的に保持したい場面で特に役立つ

なお、サブクエリが複数行を返す場合はエラーになるため、変数に代入するクエリは必ず1行1列の結果を返すように設計してください。

  1. MySQLでSELECT CASEの結果を変数に保存する方法

    MySQLでは、SELECT CASE文の実行結果をユーザー定義変数に格納することができます。この記事では、実際にテーブルを作成し、CASE文の評価結果をINTO @変数名を使って変数へ保存する手順を解説します。1. サンプルテーブルの作成まず、2つの整数カラムを持つテーブルを作成します。mysql> create table DemoTable-> (-> Num1 int,-> Num2 int-> );Query OK, 0 rows affected (0.65 sec)2. レコードの挿入INSERT文を使って、サンプルデータを挿入します。ここでは「10

  2. MySQLでクエリの実行結果を変数に代入する方法をわかりやすく解説

    MySQLでクエリ結果を変数に代入する基本MySQLでは、@変数名 の形式でユーザー定義変数を使用することで、クエリの実行結果を変数に格納できます。代入には :=(代入演算子)を使い、SELECT文の中で直接値を取得するのが一般的な方法です。この記事では、実際にテーブルを作成し、クエリ結果を変数に代入するまでの一連の手順をサンプルコード付きで紹介します。1. サンプルテーブルを作成するまず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable1864 ( Id int, FirstName var