Có, nhưng bạn cần chuyển phép gán biến vào truy vấn:
SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;
Trường hợp thử nghiệm:
CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);
Kết quả:
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)
Lưu ý rằng đối với SET
, =
hoặc :=
có thể được sử dụng làm toán tử gán. Tuy nhiên, bên trong các câu lệnh khác, toán tử gán phải là :=
chứ không phải =
bởi vì =
được coi như một toán tử so sánh trong các câu lệnh không phải SET.
CẬP NHẬT:
Ngoài các nhận xét bên dưới, bạn cũng có thể làm như sau:
SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;