我有一个包含 SELECT 语句的过程 SelectProc。我想添加一个过程参数 LimitRowsCount 并按如下方式使用它:
CREATE PROCEDURE SelectProc (IN LimitRowsCount INTEGER UNSIGNED)
BEGIN
SELECT (...)
LIMIT LimitRowsCount;
END
但这种方法行不通。
SELECT 本身包含嵌套子查询,因此我无法从中创建 View 。有没有比动态SQL(prepared statements)更合适的方式?
最佳答案
CREATE PROCEDURE SelectProc (IN LimitRowsCount INT)
BEGIN
SET @LimitRowsCount1=LimitRowsCount;
PREPARE STMT FROM "SELECT (...) LIMIT ?";
EXECUTE STMT USING @LimitRowsCount1;
END
关于mysql - 使用 MySQL 中的存储过程参数限制选定的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402307/