那么当你在LIMIT子句中使用负值时会发生什么?是否会产生负面影响(轻微的双关语)?
我没有看到关于这个和MySQL论坛的任何文档,我记得,sux.
背景:我使用的是MySQL CE 5.5.20.我编写了一个存储过程,它接受一个int参数并将其用于LIMIT子句.如果需要,我需要一种方法来返回所有行,所以我尝试在我的商店过程/例程中传入-1作为limit参数,这很有效.
根据文档,它必须是非负整数
LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数字参数,这两个参数都必须是非负整数常量(使用预处理语句时除外)。
在我看来,您遇到的是一个未记录的错误,因为如果参数与文档所需的内容不一致,则mysql应该引发错误。
我的建议是在存储过程中使用经过语法校正的SQL。您仍然可以使用负整数作为标记来显示所有内容。像这样
IF myparam >= 0 THEN
SELECT * FROM `mytable` LIMIT myparam;
ELSE
SELECT * FROM `mytable`;
END IF;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5506 次 |
| 最近记录: |