はい。ただし、変数の割り当てをクエリに移動する必要があります。
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;