【MySQL】SQLで変数を利用する方法


ここではMySQLで、SQLで変数を利用する方法を紹介しています。

SQLで変数を利用する方法

SQLで変数を利用する場合の主な方法は、SET句を使う方法とSELECT~INTO句を使う方法の2つあります。

SET句を使う方法

SET句を使うことで変数の宣言や値の代入を行うことが出来ます。

次のSQLでは、「SET @a = NOW();」で変数aを宣言し、同時に現在の日時を格納しています。

mysql> SET @a = NOW();
Query OK, 0 rows affected (0.01 sec)

変数に格納した値は、SELECT文を使うことで中身を確認することが出来ます。

mysql> SELECT @a;
+---------------------+
| @a                  |
+---------------------+
| 2010-10-10 10:10:10 |
+---------------------+
1 row in set (0.00 sec)

SELECT~INTO句を使う方法

SELECT~INTO句を使うことで、SELECTした値を変数に格納することが出来ます。

SELECT~INTO句の基本的な使い方は次の通りです。

SELECT 列名 INTO @変数名 FROM テーブル名;

次のSQLでは、tab1テーブルのage列の最大値を取得して変数aに格納してみました。

mysql> SELECT MAX(age) INTO @a FROM tab1;
Query OK, 1 row affected (0.00 sec)

変数aに格納された値とSELECTして取得したage列の最大値が同じであることが分かります。

mysql> SELECT @a;
+------+
| @a   |
+------+
|   55 |
+------+
1 row in set (0.00 sec)

mysql> SELECT MAX(age) FROM tab1;
+----------+
| MAX(age) |
+----------+
|       55 |
+----------+
1 row in set (0.01 sec)