अस्थायी टेबल का उपयोग (सर्वोत्तम अभ्यास)
MySQL में **सरणी (array) चर नहीं** होते। मानों के संग्रह को संभालने के लिए **अस्थायी टेबल (Temporary Table)** का उपयोग करें। यह सत्र-विशिष्ट होता है और कनेक्शन बंद होने पर स्वचालित रूप से ड्रॉप हो जाता है।
सिंटैक्स
CREATE TEMPORARY TABLE IF NOT EXISTS yourTempTableName
SELECT column1, column2, ...
FROM yourTableName
WHERE condition;
व्यावहारिक उदाहरण
1. मूल टेबल बनाएं
mysql> CREATE TABLE SimulateArrayDemo (
-> Id INT,
-> FirstName VARCHAR(100),
-> LastName VARCHAR(100)
-> );
Query OK, 0 rows affected (1.25 sec)
mysql> INSERT INTO SimulateArrayDemo VALUES
-> (1, 'Sam', 'Taylor'),
-> (2, 'Carol', 'Taylor'),
-> (3, 'Bob', 'Smith'),
-> (4, 'David', 'Taylor'),
-> (5, 'John', 'Smith'),
-> (6, 'Mike', 'Taylor');
2. डेटा देखें
mysql> SELECT * FROM SimulateArrayDemo;
+------+-----------+----------+
| Id | FirstName | LastName |
+------+-----------+----------+
| 1 | Sam | Taylor |
| 2 | Carol | Taylor |
| 3 | Bob | Smith |
| 4 | David | Taylor |
| 5 | John | Smith |
| 6 | Mike | Taylor |
+------+-----------+----------+
6 rows in set (0.00 sec)
3. अस्थायी टेबल बनाएं (Taylor उपनाम वाले)
mysql> CREATE TEMPORARY TABLE IF NOT EXISTS SimulationOfArray
-> SELECT Id, FirstName
-> FROM SimulateArrayDemo
-> WHERE LastName = 'Taylor';
Query OK, 4 rows affected (0.10 sec)
4. अस्थायी टेबल से डेटा देखें
mysql> SELECT * FROM SimulationOfArray;
+------+-----------+
| Id | FirstName |
+------+-----------+
| 1 | Sam |
| 2 | Carol |
| 4 | David |
| 6 | Mike |
+------+-----------+
4 rows in set (0.00 sec)
अस्थायी टेबल के लाभ
- सत्र-विशिष्ट: अन्य कनेक्शन प्रभावित नहीं
- स्वचालित सफाई: कनेक्शन बंद होने पर ड्रॉप
- पूर्ण SQL समर्थन: JOIN, WHERE, INDEX, UPDATE संभव
- पुन: प्रयोज्य: स्टोर्ड प्रोसीजर में पैरामीटर के साथ
वैकल्पिक: JSON सरणी (MySQL 5.7+)
SET @arr = JSON_ARRAY(1, 2, 3, 4, 5);
SELECT JSON_EXTRACT(@arr, '$[2]'); -- 3 (0-आधारित)
SELECT JSON_LENGTH(@arr); -- 5
वैकल्पिक: CSV स्ट्रिंग + FIND_IN_SET
SET @csv = '1,2,3,4,5';
SELECT FIND_IN_SET(3, @csv); -- 3 (स्थिति)
SELECT * FROM table WHERE FIND_IN_SET(id, @csv);
सरल मामलों के लिए ठीक, लेकिन स्केलेबल नहीं।
निष्कर्ष: जटिल/बड़े डेटा के लिए **अस्थायी टेबल** सर्वोत्तम है। सरल सूचियों के लिए JSON/CSV।