ใน MySQL สามารถสร้าง Stored Procedure ที่รับพารามิเตอร์ LIMIT เข้ามา เพื่อควบคุมจำนวนแถวที่ต้องการแสดงได้แบบ Dynamic
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล 6 แถว:
mysql> create table DemoTable1368 (ClientId int, ClientName varchar(20)); mysql> insert into DemoTable1368 values(101,'Adam'),(102,'Bob'),(103,'John'),(104,'Sam'),(105,'Mike'),(106,'Carol');
สร้าง Stored Procedure รับพารามิเตอร์ limitValue
mysql> DELIMITER //
mysql> CREATE PROCEDURE limit_Demo(IN limitValue INT)
-> BEGIN
-> DECLARE limValue INT;
-> SET limValue = limitValue;
-> SELECT * FROM DemoTable1368 LIMIT limValue;
-> END //
mysql> DELIMITER ;
เรียกใช้ Procedure กำหนด LIMIT = 3
mysql> CALL limit_Demo(3);
ผลลัพธ์ (3 แถวแรก)
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 101 | Adam | | 102 | Bob | | 103 | John | +----------+------------+
คำอธิบาย:
DELIMITER //เปลี่ยนตัวคั่นคำสั่งชั่วคราว เพื่อให้;ภายใน Procedure ไม่จบคำสั่งIN limitValue INTรับพารามิเตอร์เข้าDECLARE limValue INTประกาศตัวแปร LocalSET limValue = limitValueกำหนดค่า (MySQL ไม่รองรับ LIMIT ตรงจากพารามิเตอร์ ต้องผ่านตัวแปร)LIMIT limValueใช้ตัวแปรใน LIMIT clause- MySQL 8.0+ รองรับ
LIMIT @varโดยตรงใน Prepared Statement