ここでは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)