求助,mysql 查询 limit结果为空问题

flydream3618 2017-11-08 03:53:57
为什么下边这2条mysql语句,第1条正常返回数据,第二条返回空

其中id为自增,主键

//第1条:这条正常返回10条记录
select * from qw_user where uid = 1 and id > 999900 limit 10;

//第2条:这样写的话就返回空数据,去掉uid正常返回10条记录
select * from qw_user where uid = 1 limit 999900,10;

//第2条改:如果缩小偏移量,改成下边这样,记录条数正常,但是id总是x2的结果,即 id 从200001开始,
select * from qw_user_creditcard where uid = 1 limit 100000,20;


新手请教,谢谢了
...全文
1033 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
flydream3618 2017-11-08
  • 打赏
  • 举报
回复
问题已经解决了,谢谢大家~
flydream3618 2017-11-08
  • 打赏
  • 举报
回复
引用 1 楼 ccs02287 的回复:
999900行之后是否还有符合条件的数据?
感谢回复,逻辑搞错了哈,【qq_37170555】已经提供了详细的测试方法了
flydream3618 2017-11-08
  • 打赏
  • 举报
回复
感谢 [qq_37170555] 回复,最后一句是表名称复制错了 再请教下,这句select * from qw_user_creditcard where uid = 1 limit 100000,20; 如果想获取100000~200000之间的数据,是不是只能用第一条语句呢
听雨停了 2017-11-08
  • 打赏
  • 举报
回复
引用 楼主 flydream3618 的回复:
为什么下边这2条mysql语句,第1条正常返回数据,第二条返回空 其中id为自增,主键 //第1条:这条正常返回10条记录 select * from qw_user where uid = 1 and id > 999900 limit 10; //第2条:这样写的话就返回空数据,去掉uid正常返回10条记录 select * from qw_user where uid = 1 limit 999900,10; //第2条改:如果缩小偏移量,改成下边这样,记录条数正常,但是id总是x2的结果,即 id 从200001开始, select * from qw_user_creditcard where uid = 1 limit 100000,20; 新手请教,谢谢了

//第1条:这条正常返回10条记录
select COUNT(1) from qw_user  where uid = 1 and id > 999900
//如果以上语句返回值大于10,那么下面的这条语句是可以运行的
select COUNT(1) from qw_user  where uid = 1 and id > 999900 limit 10; 



//第2条:这样写的话就返回空数据,去掉uid正常返回10条记录
select COUNT(1) from qw_user  where uid = 1
//如果以上语句返回值大于999900,那么下面这条语句可以有结果,没有结果是很正常的,没有这么多条满足的记录
select * from qw_user  where uid = 1 limit 999900,10;

//第2条改:如果缩小偏移量,改成下边这样,记录条数正常,但是id总是x2的结果,即 id 从200001开始,
//下面这个表不知是不是你写错了,跟上面的不同啊。
select count(1) from qw_user_creditcard where uid = 1 and id<=200000
//如果上面的语句返回值是100000,那么id 从200001开始也是正常的
select * from qw_user_creditcard where uid = 1 limit 100000,20;
空心兜兜 2017-11-08
  • 打赏
  • 举报
回复
999900行之后是否还有符合条件的数据?

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧