2012-11-08 21 views
8

मेरे पास नीचे की तरह एक टेबल है।MySQL अस्थायी चर असाइनमेंट

CREATE TABLE People(PeopleId INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
        Name VARCHAR(255), 
        Age INT); 

INSERT INTO People(Name, Age) 
      VALUES('Sam', 25), 
        ('John', 24), 
        ('Ria', 14), 
        ('Diya', 23), 
        ('Topel',19), 
        ('Mac', 45); 

मैंने एक प्रक्रिया बनाई है जहां मैं कुछ उद्देश्य के लिए अस्थायी चर आयु का उपयोग करता हूं।

DROP PROCEDURE IF EXISTS Sample; 
CREATE PROCEDURE Sample() 
BEGIN 
    SELECT @Age = Age 
    FROM People 
    WHERE PeopleId = 4; 

    SELECT * 
    FROM People; 
END; 

पूछना कारण है कि मैं अस्थायी चर में उम्र के संचय कर रहा हूँ के बाद से ऊपर सटीक प्रक्रिया नहीं है मत करो।

जब मैं प्रक्रिया चलाता हूं, तो अस्थायी चर परिणाम परिणाम के साथ परिणाम सेट के साथ प्रदर्शित होता है, मुझे चुनिंदा क्वेरी के लिए मिलता है। असाइनमेंट के बाद परिणाम सेट के हिस्से के रूप में अस्थायी चर को प्रदर्शित करने से मैं कैसे बच सकता हूं?

उत्तर

10

इस एक कोशिश,

SET @Age = (SELECT Age FROM People WHERE PeopleId = 16); 

या

SELECT Age INTO @Age 
FROM People 
WHERE PeopleId = 16;