mysql5 - 对 MySQL LIMIT 使用负值有什么作用?

标签 mysql5

那么当您在 LIMIT 子句中使用负值时会发生什么?会产生负面后果(有点双关语)吗?

我没有看到任何关于此的文档,我记得 MySQL 论坛,sux。

背景: 我正在使用 MySQL CE 5.5.20。我编写了一个存储过程,它采用 int 参数并将其用于 LIMIT 子句。如果需要,我需要一种返回所有行的方法,因此我尝试在存储过程/例程中传入 -1 作为限制参数,并且成功了。

最佳答案

根据documentation ,它必须是一个非负整数

The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be nonnegative integer constants (except when using prepared statements).

在我看来,您遇到的是一个未记录的错误,如果参数与文档要求的不相符,mysql应该抛出错误。

我的建议是在存储过程中使用语法正确的 SQL。不过,您仍然可以使用负整数作为标志来显示所有内容。像这样的事情

IF myparam >= 0 THEN
    SELECT * FROM `mytable` LIMIT myparam;
ELSE
    SELECT * FROM `mytable`;
END IF;

关于mysql5 - 对 MySQL LIMIT 使用负值有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852956/

相关文章:

mysql - 如何导入数据库,更新已更改的产品,删除已删除的产品

php - 如何使用mysql5中的查询添加不同查询的计数?

mysql - 如何查找所有整数列已达到最大值的表?

mysql - 查询不再适用于 MySQL 5

php - mysql卡在内部连接查询

mysql - 服务 mysql 在 ubuntu 上启动失败

mysql - Sql 查询 对于我的案例

mysql - 填充空的 MySQL 结果

具有唯一字段的 MySQL 数据库忽略结尾空格

php - MYSQL 4 密码哈希 -> MYSQL 5