mysql用同样内容的数据排序,分页数据不固定?
问题描述
表里面id是主键,created_at是时间戳,要查询的数据created_at都是1538125292
第一页:
SELECT * FROM 4s_active_slotmachine_import_player
WHERE (area_id
=18696) AND (active_id
=6293) AND (is_del
=0) ORDER BY created_at
DESC LIMIT
第二页:
SELECT * FROM 4s_active_slotmachine_import_player
WHERE (area_id
=18696) AND (active_id
=6293) AND (is_del
=0) ORDER BY created_at
DESC LIMIT 20 OFFSET 20
问题出现的环境背景及自己尝试过哪些方法
发现第二页出现了在第一页里面出现过的数据,如果查询不加order by就没问题,或者用id排序也没问题。
用相同值的created_at排序就会出现同样的数据出现在多页的情况。
这是什么情况?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
测试过,order by并不会导致limit分页数据重复,目测应该是sql语句问题
第一页
第二页
可以看出order by同一数据,并不影响分页
因为两次排序的结果不一样啊,order by出现相同的值,无法保证两次排序结果相同,所以这种情况建议使用多条件排序,第一个值相同的话去对比第二个值.
MyISAM会根据索引里rowid随机读取数据,换InnoDB