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

MySQL में स्टोर्ड प्रोसीजर बनाकर LIMIT से रिकॉर्ड सीमित करना

स्टोर्ड प्रोसीजर में डायनामिक 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;
  1. - MySQL REGEXP में पैरेंथेसिस एस्केप करके पैरेंथेसिस वाले मान खोजें

    MySQL REGEXP में पैरेंथेसिस `(` `)` विशेष मेटा-कैरेक्टर हैं (कैप्चरिंग समूह)। इन्हें शाब्दिक मिलान के लिए बैकस्लैश `\\(` `\\)` या कैरेक्टर क्लास `[(]` `[)]` से एस्केप करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1908 (Code TEXT); डेटा डालें mysql> INSERT INTO DemoTable1908 VALUES(MySQL(1)Da

  1. - MySQL में स्टोर्ड प्रोसीजर से टेबल रिकॉर्ड कैसे प्रदर्शित करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर SELECT स्टेटमेंट रखकर टेबल रिकॉर्ड्स प्रदर्शित कर सकते हैं। यह एनकैप्सुलेशन, पुन: उपयोग, और सुरक्षा (टेबल पर सीधे SELECT अधिकार दिए बिना डेटा एक्सेस) के लिए उपयोगी है। उदाहरण: सभी रिकॉर्ड प्रदर्शित करने वाला प्रोसीजर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoT

  1. - MySQL REGEXP: केवल स्ट्रिंग या स्ट्रिंग+नंबर वाले रिकॉर्ड दिखाएँ, केवल नंबर वाले नहीं

    REGEXP पैटर्न कम से कम एक अक्षर (a-z या A-Z) वाले रिकॉर्ड के लिए: select yourColumnName from yourTableName where yourColumnName REGEXP [a-zA-Z]; उदाहरण insert into demo41 values(John Smith34), (John Smith), (9234John Smith), (john smith), (98775); क्वेरी और परिणाम select name from demo41 where