首页 >数据库 >mysql教程 >如何参数化MySQL存储过程中的LIMIT子句?

如何参数化MySQL存储过程中的LIMIT子句?

DDD
DDD原创
2024-11-03 05:54:031053浏览

How to Parameterize the LIMIT Clause in MySQL Stored Procedures?

在 MySQL 存储过程中参数化 LIMIT 子句

问题:

在创建分页类时,您的目标是将两个参数传递给 MySQL 存储过程的LIMIT 条款。但是,尝试使用 INT 参数和如下所示的查询结构会产生错误:

<code class="sql">SELECT *
FROM
`MyTable`
LIMIT
MyFirstParamInt, MySecondParamInt</code>

是否有替代方法来实现此参数化,或者动态查询构造和执行是唯一的解决方案?

答案:

在 MySQL 5.5.6 之前:

在版本 5.5.6 之前,MySQL 存储过程不支持 LIMIT 子句的参数化。因此,动态构建查询并执行它是唯一可行的方法。

MySQL 5.5.6 及以上:

从 MySQL 5.5.6 开始,它变成可以使用 INTEGER 参数对 LIMIT 和 OFFSET 子句进行参数化。为此,只需将存储过程参数直接传递给 LIMIT 和 OFFSET,如下所示:

<code class="sql">SELECT *
FROM
`MyTable`
LIMIT ? OFFSET ?</code>

在此示例中,?表示您要传递的两个 INTEGER 参数的占位符。

以上是如何参数化MySQL存储过程中的LIMIT子句?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn