我有一个包含select语句的过程selectproc。我想添加一个过程param limitrowscount并使用它如下:
CREATE PROCEDURE SelectProc (IN LimitRowsCount INTEGER UNSIGNED)
BEGIN
SELECT (...)
LIMIT LimitRowsCount;
END
但这种方法行不通。
选择本身包含嵌套的子查询,因此我无法从中创建视图。有没有比动态sql(准备好的语句)更有效的方法?
最佳答案
CREATE PROCEDURE SelectProc (IN LimitRowsCount INT)
BEGIN
SET @LimitRowsCount1=LimitRowsCount;
PREPARE STMT FROM "SELECT (...) LIMIT ?";
EXECUTE STMT USING @LimitRowsCount1;
END