我正在写一个存储过程,其中有一个名为my_size的输入参数,它是一个INTEGER。我希望能够LIMIT在SELECT语句的子句中使用它。显然,这不受支持,是否有解决方法?
SELECT * FROM some_table LIMIT my_size;
SELECT * FROM some_table LIMIT 100;
通过搜索找到了这篇文章。我在下面粘贴了相关文本。
这是一个论坛帖子,其中显示了准备好的语句的示例,可让您将变量值分配给limit子句:
http://forums.mysql.com/read.php?98,126379,133966#msg-133966
但是,我认为该错误应该引起注意,因为我无法想象过程中的准备好的语句将允许进行任何过程编译时优化。我感觉到准备好的语句是在过程的运行时编译和执行的,这种概率对效率有负面影响。如果limit子句可以接受常规过程变量(例如,过程参数),则数据库仍可以在过程中对其余查询执行编译时优化。这可能会更快地执行该过程。我不是专家。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。