开发者社区> 问答> 正文

在MySQL的LIMIT子句中使用变量

我正在写一个存储过程,其中有一个名为my_size的输入参数,它是一个INTEGER。我希望能够LIMIT在SELECT语句的子句中使用它。显然,这不受支持,是否有解决方法?

I want something like:

SELECT * FROM some_table LIMIT my_size;

Instead of hardcoding a permanent limit:

SELECT * FROM some_table LIMIT 100;

展开
收起
保持可爱mmm 2020-05-11 16:00:26 705 0
1 条回答
写回答
取消 提交回答
  • 通过搜索找到了这篇文章。我在下面粘贴了相关文本。

    这是一个论坛帖子,其中显示了准备好的语句的示例,可让您将变量值分配给limit子句:

    http://forums.mysql.com/read.php?98,126379,133966#msg-133966

    但是,我认为该错误应该引起注意,因为我无法想象过程中的准备好的语句将允许进行任何过程编译时优化。我感觉到准备好的语句是在过程的运行时编译和执行的,这种概率对效率有负面影响。如果limit子句可以接受常规过程变量(例如,过程参数),则数据库仍可以在过程中对其余查询执行编译时优化。这可能会更快地执行该过程。我不是专家。来源:stack overflow

    2020-05-11 16:00:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像