MySQL में उपयोगकर्ता-परिभाषित वेरिएबल्स सेट करने के लिए SET कमांड का उपयोग करें, फिर क्वेरी में @variableName सिंटैक्स के साथ संदर्भित करें। यह डायनामिक क्वेरीज़, पुन: प्रयोज्य स्क्रिप्ट्स, और पैरामीटराइज्ड क्वेरीज़ के लिए उपयोगी है।
सिंटैक्स
SET @yourVariableName := yourValue; SELECT * FROM yourTableName WHERE yourColumnName = @yourVariableName;
उदाहरण तालिका बनाना
mysql> CREATE TABLE DemoTable (
Id INT,
FirstName VARCHAR(20),
LastName VARCHAR(20)
);
डेटा डालना
mysql> INSERT INTO DemoTable VALUES
-> (10, 'Carol', 'Taylor'), (20, 'John', 'Doe'),
-> (30, 'John', 'Smith'), (40, 'David', 'Miller');
डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------+-----------+----------+ | Id | FirstName | LastName | +------+-----------+----------+ | 10 | Carol | Taylor | | 20 | John | Doe | | 30 | John | Smith | | 40 | David | Miller | +------+-----------+----------+
वेरिएबल सेट करना और उपयोग करना
mysql> SET @myId := 30; mysql> SELECT * FROM DemoTable WHERE Id = @myId;
आउटपुट:
+------+-----------+----------+ | Id | FirstName | LastName | +------+-----------+----------+ | 30 | John | Smith | +------+-----------+----------+
मुख्य बिंदु:
@प्रीफिक्स उपयोगकर्ता-परिभाषित वेरिएबल को इंगित करता है (सत्र-विशिष्ट):=असाइनमेंट ऑपरेटर (=भी काम करता है लेकिनSETमें:=पसंदीदा)- वेरिएबल सत्र के लिए बने रहते हैं (कनेक्शन बंद होने तक)
SELECT @myId;से वर्तमान मान देख सकते हैं
स्टोर्ड प्रोसीजर में पैरामीटर: (अलग सिंटैक्स)
CREATE PROCEDURE GetUser(IN p_id INT)
BEGIN
SELECT * FROM DemoTable WHERE Id = p_id;
END
कॉल: CALL GetUser(30); - यहां @ नहीं, सीधे पैरामीटर नाम।