Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में सरणी (Array) चर कैसे अनुकरण करें?

अस्थायी टेबल का उपयोग (सर्वोत्तम अभ्यास)

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।

  1. - MySQL में IFNULL() से NULL मान को 0 में बदलना

    MySQL में NULL मानों को डिफ़ॉल्ट मान (जैसे 0) से बदलने के लिए IFNULL() फ़ंक्शन का उपयोग किया जाता है। यह गणनाओं और रिपोर्टिंग में NULL-संबंधी समस्याओं से बचाता है। उदाहरण के लिए टेबल बनाना mysql> CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Value INT ); डेटा डालन

  1. - MySQL में IN() का उपयोग करके कई OR स्टेटमेंट से बचें

    एक ही कॉलम के विरुद्ध कई समानता जांच को सरल बनाने के लिए IN() ऑपरेटर का उपयोग करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(40) ); Query OK, 0 rows affected (0.89 sec) INSERT INTO DemoTable(Name) VALUES(Chris),(Robert),(M

  1. - MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल (@var) से क्वेरी परिणाम असाइन करें

    MySQL में @variable_name सिंटैक्स से यूज़र-डिफ़ाइन्ड वेरिएबल बनाकर SELECT ... INTO @var या असाइनमेंट ऑपरेटर := से क्वेरी परिणाम संग्रहीत कर सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1864 ( Id INT, FirstName VARCHAR(20), LastName VARCHAR(20) ); डेटा डालें mysql> INSERT INT