回答:
はい。ただし、変数の割り当てをクエリに移動する必要があります。
SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;
テストケース:
CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);
結果:
SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;
+--------+-------+
| user | group |
+--------+-------+
| 123456 | 5 |
| 111111 | 5 |
+--------+-------+
2 rows in set (0.00 sec)
用なおSET、いずれか=または:=代入演算子として使用することができます。ただし、他のステートメントの内部では、SET以外のステートメントでは比較演算子として扱われるため、代入演算子は必須では:=ありません。==
更新:
以下のコメントに加えて、次の操作も実行できます。
SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;
select grop into @group from user limit 1ます。
クエリを括弧で囲むだけです:
set @user = 123456;
set @group = (select GROUP from USER where User = @user);
select * from USER where GROUP = @group;
Subquery returns more than 1 row私にとっては
最初に、mysqlで変数を定義する方法を見てみましょう
mysqlで変数を定義するには、@ {variable_name}のように '@'で始まり、この '{variable_name}'を変数名に置き換えることができます。
次に、mysqlの変数に値を割り当てる方法について説明します。このために、私たちはそれを行う多くの方法を持っています
例:-mysql> SET @a = 1;
例:-mysql> @a:= 1;
例:-mysql> 1を@aに選択します。
ここで@aはユーザー定義変数であり、@ aに1が割り当てられます。
ここで、@ {variable_name}の値を取得または選択する方法について説明します。
次のようなselectステートメントを使用できます
例:-
mysql> @aを選択します。
出力と@aの値が表示されます。
次に、変数のテーブルから値を割り当てる方法について説明します。
このため、次のような2つのステートメントを使用できます。
@a:=(emp_id = 1の従業員からemp_nameを選択);
emp_id = 1である従業員から@aにemp_nameを選択します。
emp_nameは単一の値を返す必要があるので常に注意してください。そうしないと、この型ステートメントでエラーがスローされます。
これを参照してください:-http : //www.easysolutionweb.com/sql-pl-sql/how-to-assign-a-value-in-a-variable-in-mysql