स्टोर्ड प्रोसीजर में डायनामिक LIMIT पैरामीटर
MySQL में स्टोर्ड प्रोसीजर बनाकर रनटाइम पर LIMIT वैल्यू पास करके प्रदर्शित रिकॉर्ड्स की संख्या नियंत्रित कर सकते हैं।
टेबल बनाना और डेटा इन्सर्ट करना
CREATE TABLE DemoTable1368 (
ClientId INT,
ClientName VARCHAR(20)
);
INSERT INTO DemoTable1368 VALUES(101, 'Adam');
INSERT INTO DemoTable1368 VALUES(102, 'Bob');
INSERT INTO DemoTable1368 VALUES(103, 'John');
INSERT INTO DemoTable1368 VALUES(104, 'Sam');
INSERT INTO DemoTable1368 VALUES(105, 'Mike');
INSERT INTO DemoTable1368 VALUES(106, 'Carol');
मौजूदा डेटा
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 101 | Adam | | 102 | Bob | | 103 | John | | 104 | Sam | | 105 | Mike | | 106 | Carol | +----------+------------+
स्टोर्ड प्रोसीजर बनाना
DELIMITER //
CREATE PROCEDURE limit_Demo(IN limitValue INT)
BEGIN
DECLARE limValue INT;
SET limValue = limitValue;
SELECT * FROM DemoTable1368 LIMIT limValue;
END //
DELIMITER ;
प्रोसीजर कॉल करना
CALL limit_Demo(3);
आउटपुट
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 101 | Adam | | 102 | Bob | | 103 | John | +----------+------------+
महत्वपूर्ण बिंदु
DELIMITER //स्टेटमेंट डिलीमीटर अस्थायी रूप से बदलता हैIN limitValue INTइनपुट पैरामीटरDECLAREलोकल वेरिएबल (वैकल्पिक, सीधे उपयोग कर सकते हैं)LIMIT limValueवेरिएबल उपयोग करता है (MySQL 5.5.6+ सपोर्ट करता है)DELIMITER ;डिलीमीटर वापस सेट करता है
सरल संस्करण (बिना DECLARE)
CREATE PROCEDURE limit_Demo(IN limitValue INT)
BEGIN
SELECT * FROM DemoTable1368 LIMIT limitValue;
END
OFFSET के साथ पेजिनेशन
CREATE PROCEDURE GetPage(IN pageNum INT, IN pageSize INT)
BEGIN
DECLARE offsetVal INT;
SET offsetVal = (pageNum - 1) * pageSize;
SELECT * FROM DemoTable1368 LIMIT offsetVal, pageSize;
END
CALL GetPage(2, 3); -- दूसरा पेज, 3 रिकॉर्ड प्रति पेज
प्रोसीजर देखना/डिलीट करना
SHOW PROCEDURE STATUS WHERE Db = 'your_db'; DROP PROCEDURE IF EXISTS limit_Demo;