हां, लेकिन आपको वेरिएबल असाइनमेंट को क्वेरी में स्थानांतरित करने की आवश्यकता है:
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 @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;