예, 그러나 변수 할당을 쿼리로 이동해야합니다.
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;