mysql - 使用 MySQL 中的存储过程参数限制选定的行数

标签 mysql select limit procedure

我有一个包含 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/

相关文章:

mysql - 当我只想在搜索查询中获得结果数时,MySQL 是否接受 ORDER BY "nothing"LIMIT "all"?

php - mod 重写,title slugs 和 htaccess

php - Mysqli:打印记录列表

php - 从 MyISAM 切换到 InnoDB 后 Eloquent save() 不工作

mysql - 从一个表获取数据并统计另一表的匹配记录

html - 如何在 CSS 中将最大宽度和高度限制为屏幕尺寸?

mysql - 将附加要求合并到遗留数据库设计中

css - 从选择下拉列表中删除边框

SQL 选择 table1.column 作为 table1.column

mysql - 从 MySQL Workbench 中删除限制子句