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

MySQL में @ चिह्न (उपयोगकर्ता-परिभाषित चर) का उपयोग करें

MySQL में @ चिह्न **उपयोगकर्ता-परिभाषित चर (user-defined variables)** को दर्शाता है। ये चर सत्र-विशिष्ट (session-specific) होते हैं और एक कनेक्शन के भीतर मानों को अस्थायी रूप से संग्रहीत करके क्वेरी के बीच साझा करने की अनुमति देते हैं।

सिंटैक्स

SET @variable_name := value;

या SELECT में असाइनमेंट:

SELECT @variable_name := value;

व्यावहारिक उदाहरण

टेबल बनाएं:

mysql> CREATE TABLE DemoTable1331 (
    Id INT,
    Name VARCHAR(20)
);

डेटा डालें:

mysql> INSERT INTO DemoTable1331 VALUES(10, 'Chris');
mysql> INSERT INTO DemoTable1331 VALUES(101, 'David');
mysql> INSERT INTO DemoTable1331 VALUES(40, 'Bob');
mysql> INSERT INTO DemoTable1331 VALUES(30, 'Mike');
mysql> INSERT INTO DemoTable1331 VALUES(60, 'John');

डेटा देखें:

mysql> SELECT * FROM DemoTable1331;
+------+-------+
| Id   | Name  |
+------+-------+
| 10   | Chris |
| 101  | David |
| 40   | Bob   |
| 30   | Mike  |
| 60   | John  |
+------+-------+

उपयोगकर्ता-परिभाषित चर सेट करें और उपयोग करें

mysql> SET @Value := 40;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM DemoTable1331 WHERE Id > @Value;

परिणाम

+------+-------+
| Id   | Name  |
+------+-------+
| 101  | David |
| 60   | John  |
+------+-------+

मुख्य विशेषताएं

  • सत्र-स्कोप: चर केवल वर्तमान कनेक्शन में मान्य
  • कमजोर टाइपिंग: मान का प्रकार डायनामिक रूप से निर्धारित होता है
  • केस-इनसेंसिटिव: @Value, @value, @VALUE समान हैं
  • डिफ़ॉल्ट NULL: असाइन न किए गए चर NULL होते हैं

उन्नत उपयोग

क्वेरी में गणना और पुनर्उपयोग

SELECT @row_num := @row_num + 1 AS RowNum, Name
FROM DemoTable1331, (SELECT @row_num := 0) AS r
ORDER BY Name;

एक क्वेरी से मान लेकर दूसरी में उपयोग

SELECT @max_id := MAX(Id) FROM DemoTable1331;
SELECT * FROM DemoTable1331 WHERE Id = @max_id;

प्रक्रियात्मक लूप में (स्टोर्ड प्रोसीजर नहीं)

SET @i := 0;
SELECT @i := @i + 1 AS Counter FROM DemoTable1331 LIMIT 5;

सावधानियां

  • समानांतर क्वेरी में क्रम अनिश्चित: SELECT @a := 1, @a := 2 का क्रम गारंटी नहीं
  • रीप्लिकेशन असुरक्षित: स्टेटमेंट-आधारित रीप्लिकेशन में समस्या हो सकती है
  • ऑप्टिमाइज़र प्रभाव: चर उपयोग करने से क्वेरी ऑप्टिमाइज़ेशन प्रभावित हो सकता है
  • MySQL 8.0+: CTE (WITH) और विंडो फ़ंक्शन कई उपयोग केस बदल देते हैं

आधुनिक विकल्प (MySQL 8.0+)

-- रो नंबर के लिए
SELECT ROW_NUMBER() OVER (ORDER BY Name) AS RowNum, Name FROM DemoTable1331;

-- पिछली पंक्ति का मान
SELECT Name, LAG(Name) OVER (ORDER BY Id) AS PrevName FROM DemoTable1331;

सारांश

@ चिह्न MySQL में सत्र-स्तरीय चर घोषित करता है। ये तदर्थ गणना, क्वेरी के बीच मान पारित करने, और सरल प्रक्रियात्मक तर्क के लिए उपयोगी हैं, लेकिन आधुनिक MySQL में CTE/विंडो फ़ंक्शन पसंद किए जाते हैं।

  1. Excel में IF फंक्शन का उपयोग कैसे करें Excel में IF फंक्शन का उपयोग कैसे करें

    जानने योग्य बातें IF फंक्शन का उपयोग तार्किक परीक्षण करने के लिए किया जाता है, यानी कोई चीज सही है या नहीं। IF फंक्शन सिंटैक्स और तर्क हैं =IF(logical_test, value_if_true, [value_if_false])। उदाहरण के लिए =IFA3,Bigger,Smaller)। यह लेख Excel के सभी संस्करणों में तार्किक परीक्षण करने के लिए IF फंक्

  1. लिनक्स शेल का उपयोग कैसे करें लिनक्स शेल का उपयोग कैसे करें

    परिचय उपभोक्ता-ग्रेड लिनक्स डिस्ट्रीब्यूशन शक्तिशाली ग्राफिकल यूजर इंटरफेस प्रदान करते हैं — फिर भी लिनक्स, चूंकि यह 1970 के दशक के यूनिक्स दुनिया में उत्पन्न हुआ, अभी भी एक आर्किटेक्चर पर चलता है जो किसी विशिष्ट GUI पर निर्भर नहीं करता। सिस्टम में एक टेक्स्ट-आधारित प्रवेश बिंदु को शेल कहा जाता है,

  1. Excel में SIGN फंक्शन का उपयोग कैसे करें Excel में SIGN फंक्शन का उपयोग कैसे करें

    Microsoft Excel में, SIGN संख्या एक गणित और त्रिकोणमिति फंक्शन है जो एक संख्या का चिह्न लौटाता है। SIGN फंक्शन 1 लौटाता है यदि संख्या सकारात्मक है, शून्य यदि संख्या 0 है, और -1 यदि संख्या नकारात्मक है। Excel SIGN सूत्र क्या है? SIGN फंक्शन का सूत्र SIGN(number) है। SIGN संख्या के लिए सिंटैक्स नीचे