LIMIT ক্লজে ভেরিয়েবল ব্যবহার করতে PREPARE.STATEMENT
MySQL-এ সরাসরি LIMIT @offset, @limit লেখা যায় না। PREPARE স্টেটমেন্ট ব্যবহার করে ডাইনামিক কোয়েরি বানিয়ে আনার সময় ভেরিয়েবল ব্যবহার করা যায়।
স্টোরড প্রসিজার
mysql> DELIMITER //
mysql> CREATE PROCEDURE Sp_limit(IN beg INTEGER, IN end INTEGER)
-> BEGIN
-> PREPARE myStatement FROM "SELECT * FROM LimitWithStoredProcedure LIMIT ?, ?";
-> SET @beginning = beg;
-> SET @ending = end;
-> EXECUTE myStatement USING @beginning, @ending;
-> DEALLOCATE PREPARE myStatement;
-> END //
mysql> DELIMITER ;
প্রসিজার কল
mysql> CALL Sp_limit(4, 7);
ফলাফল (অফসেট ৪, লিমিট ৭ মানে ৫ম রো থেকে ৭টি রো)
+----+--------+
| Id | Name |
+----+--------+
| 5 | David |
| 6 | Carol |
| 7 | James |
| 8 | Jace |
| 9 | Robert |
| 10 | Mike |
| 11 | Sam |
+----+--------+
ব্যাখ্যা: LIMIT ?, ? এ প্রথম ? = অফসেট (শুরু), দ্বিতীয় ? = রো সংখ্যা।