一、背景
需求:使用 mysql 时,需要获取第 X 条数据之后的所有数据。
这时,首先想到的就是利用 limit 来实现。
早期的部分文章或者资料中,提到可以使用:
limit X,-1
例如,获取第一条后的所有数据,则可写成如下 sql 语句:
select * from per_data limit 1,-1;
执行该 sql 语句后,会发现报错如下:
错误提示原文:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1
二、错误原因及解决办法
(一)错误原因
据官方解释,limit X, -1 这种形式被认为是一个优先级较低的 bug ,已经被修复,修复后的 limit ,将不再接收负数,两个参数都必须大于或等于 0 。
上图原文链接:https://bugs.mysql.com/bug.php?id=2037
(二)解决办法
任意填写一个满足需求的大正数即可。
比如,示例表 per_data 中一共有 6 条数据,要求是获取第一条后的所有数据。
语法:【limit 1,count】 ,其中 count 可以是 [5,+∞)中的任意一个数。
完整语句如下:
select * from per_data limit 1,5;#这里的5可替换成任意一个大于5的数字
以上就是 mysql 中获取偏移量后所有数据的相关问题,可供参考。
-end-