使用MySQL LIMIT的负值做什么?

b01*_*b01 7 mysql5

那么当你在LIMIT子句中使用负值时会发生什么?是否会产生负面影响(轻微的双关语)?

我没有看到关于这个和MySQL论坛的任何文档,我记得,sux.

背景:我使用的是MySQL CE 5.5.20.我编写了一个存储过程,它接受一个int参数并将其用于LIMIT子句.如果需要,我需要一种方法来返回所有行,所以我尝试在我的商店过程/例程中传入-1作为limit参数,这很有效.

wma*_*but 5

根据文档,它必须是非负整数

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)