MySQL में क्वेरी परिणाम को सीधे प्रिंट किए बिना यूजर-डिफाइंड वेरिएबल में स्टोर करने के लिए असाइनमेंट ऑपरेटर (:= या = SET के साथ) का उपयोग करें। यह स्क्रिप्टिंग और स्टोर्ड प्रोसीजर्स में उपयोगी है।
सिंटैक्स
SET @variable_name = (SELECT aggregate_function(column) FROM table_name);
व्यावहारिक उदाहरण
1. टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE DemoTable709 (Amount INT); Query OK, 0 rows affected (0.62 sec) mysql> INSERT INTO DemoTable709 VALUES (100), (560), (7800), (1020); Query OK, 4 rows affected (0.15 sec)
2. परिणाम प्रिंट किए बिना वेरिएबल में स्टोर करें
mysql> SET @TotalAmount = (SELECT SUM(Amount) FROM DemoTable709); Query OK, 0 rows affected (0.00 sec)
3. आवश्यकता पड़ने पर वेरिएबल मान देखें
mysql> SELECT @TotalAmount; +--------------+ | @TotalAmount | +--------------+ | 9480 | +--------------+ 1 row in set (0.05 sec)
मुख्य बिंदु
@variable_name- यूजर-डिफाइंड वेरिएबल (सत्र-स्तरीय)- सबक्वेरी एकल मान लौटानी चाहिए
- परिणाम टर्मिनल पर प्रिंट नहीं होता, केवल वेरिएबल में स्टोर होता है
- बाद में
SELECT @variable_nameसे मान प्राप्त करें
अन्य उपयोगी उदाहरण
-- गिनती स्टोर करें SET @count = (SELECT COUNT(*) FROM users WHERE active = 1); -- अधिकतम तिथि स्टोर करें SET @max_date = (SELECT MAX(created_at) FROM orders); -- एकाधिक वेरिएबल्स एक साथ SELECT @min_val := MIN(score), @max_val := MAX(score) FROM exam_results; -- वेरिएबल का उपयोग दूसरी क्वेरी में SELECT * FROM products WHERE price > @avg_price;
स्क्रिप्टिंग में उपयोग
शेल स्क्रिप्ट्स या बैच फाइल्स में MySQL क्वेरीज़ चलाते समय आउटपुट को दबाने और केवल वेरिएबल में मान रखने के लिए यह तकनीक बहुत उपयोगी है।