हां, लेकिन आपको वेरिएबल असाइनमेंट को क्वेरी में स्थानांतरित करने की आवश्यकता है:
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;