Wednesday, April 25, 2012

การใช้ LIMIT ใน MySQL Stored Procedure

โดยปกติแล้ว เราจะไม่สามารถส่งค่า LIMIT เข้าไปใน Procedure ได้โดยตรงเนื่องจาก LIMIT จะไม่รับค่าที่เป็นตัวแปร ดังนั้นจึงต้องทำเช่นนี้
DELIMITER $$

DROP PROCEDURE IF EXISTS `danupon`.`ZPO` $$
CREATE PROCEDURE `danupon`.`ZPO` (
IN LIM INT
)
BEGIN
  SET @SQL = CONCAT("SELECT * FROM CLIPS LIMIT ",LIM);
  PREPARE STMT FROM @SQL;
  EXECUTE STMT;
END $$

DELIMITER ;
เพียงเท่านี้ เราก็จะสามารถส่งค่า LIMIT เข้าไปใน Parameter ของ Procedure ได้

No comments:

Post a Comment