MySQL में @variable_name सिंटैक्स से यूज़र-डिफ़ाइन्ड वेरिएबल बनाकर SELECT ... INTO @var या असाइनमेंट ऑपरेटर := से क्वेरी परिणाम संग्रहीत कर सकते हैं।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1864 (
Id INT,
FirstName VARCHAR(20),
LastName VARCHAR(20)
);
डेटा डालें
mysql> INSERT INTO DemoTable1864 VALUES(101, 'Chris', 'Brown'); mysql> INSERT INTO DemoTable1864 VALUES(102, 'David', 'Miller'); mysql> INSERT INTO DemoTable1864 VALUES(103, 'Adam', 'Smith'); mysql> INSERT INTO DemoTable1864 VALUES(104, 'John', 'Doe');
वेरिएबल में असाइन करें (:= ऑपरेटर)
mysql> SELECT @fName := FirstName, @lName := LastName
FROM DemoTable1864
WHERE Id = 103;
आउटपुट:
+-------------------+------------------+ | @fName := FirstName | @lName := LastName | +-------------------+------------------+ | Adam | Smith | +-------------------+------------------+
वेरिएबल उपयोग करें
mysql> SELECT @fName, @lName; +--------+--------+ | @fName | @lName | +--------+--------+ | Adam | Smith | +--------+--------+
विकल्प: SELECT INTO (केवल एकल पंक्ति)
SELECT FirstName, LastName INTO @fName, @lName FROM DemoTable1864 WHERE Id = 103;
महत्वपूर्ण अंतर
| पहलू | := (SELECT सूची में) | INTO |
|---|---|---|
| एकाधिक पंक्तियाँ | अंतिम पंक्ति का मान रहता है | त्रुटि (एक से अधिक पंक्ति नहीं) |
| उपयोग स्थान | SELECT सूची, WHERE, ORDER BY | केवल SELECT ... INTO |
| स्कोप | सत्र (कनेक्शन) | सत्र |
सावधानियां
- वेरिएबल नाम केस-इनसेंसिटिव:
@name=@Name। - सत्र समाप्त होने पर वेरिएबल खो जाते हैं।
- स्टोर्ड प्रोसीजर में
DECLARE(स्थानीय वेरिएबल) अलग है;@सत्र वेरिएबल है।