ユーザー定義変数を利用すると、使い回ししやすいクエリを作成することができます。例えば、複数箇所で同じ値を利用しているクエリがあれば、変数を利用して1箇所で値を調整することができます。主な使い方を確認します。
目次
ユーザー定義変数
同一セッションでのみ利用できる変数です。そのため、他のクライアントが利用することはできません。
変数を作る方法
SET文を利用して定義するには以下のようにします。
SET @var_name = 'abcdef';
SQLの結果を変数に格納したい場合 :=
を利用します。
SELECT @max_post_id := `id`
FROM posts
ORDER BY id DESC
LIMIT 1;
変数を参照する方法
以下のように、作成した変数をそのまま参照できます。
mysql> SET @var_name = 'abcdef';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @var_name;
+-----------+
| @var_name |
+-----------+
| abcdef |
+-----------+
1 row in set (0.00 sec)
mysql> SELECT @max_post_id := `id`
-> FROM posts
-> ORDER BY id DESC
-> LIMIT 1;
+----------------------+
| @max_post_id := `id` |
+----------------------+
| 5 |
+----------------------+
1 row in set (0.00 sec)
mysql> SELECT @max_post_id;
+--------------+
| @max_post_id |
+--------------+
| 5 |
+--------------+
1 row in set (0.00 sec)
mysql> SELECT @max_post_id + 3;
+------------------+
| @max_post_id + 3 |
+------------------+
| 8 |
+------------------+
1 row in set (0.00 sec)