SELECT column INTO @variable FROM table WHERE condition का उपयोग करके एकल पंक्ति का एकल मान यूज़र-डिफ़ाइन्ड वेरिएबल में संग्रहीत करें।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1896 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(20),
StudentMarks INT
);
डेटा डालें
mysql> INSERT INTO DemoTable1896(StudentName, StudentMarks) VALUES('Chris', 56), ('David', 98), ('Mike', 89), ('Sam', 78);
वेरिएबल में मान संग्रहीत करें
mysql> SET @Name := NULL; mysql> SELECT StudentName INTO @Name FROM DemoTable1896 WHERE StudentMarks = 98;
वेरिएबल देखें
mysql> SELECT @Name;
+-------+ | @Name | +-------+ | David | +-------+
नियम
- क्वेरी को **ठीक एक पंक्ति** लौटानी चाहिए (0 या 1+ पंक्ति होने पर त्रुटि)।
LIMIT 1जोड़कर सुरक्षित करें:SELECT ... INTO @var FROM ... WHERE ... LIMIT 1।- एकाधिक कॉलम:
SELECT col1, col2 INTO @v1, @v2 FROM ...
विकल्प: SELECT सूची में असाइनमेंट (:=)
SELECT @Name := StudentName FROM DemoTable1896 WHERE StudentMarks = 98; SELECT @Name;
यह एकाधिक पंक्तियों पर अंतिम मान रखता है (कोई त्रुटि नहीं)।
उपयोग के मामले
- बाद की क्वेरी में मान पुनः उपयोग करना।
- स्टोर्ड प्रोसीजर में मध्यवर्ती परिणाम।
- शर्तीय लॉजिक:
IF @Name = 'David' THEN ...