mysql 查询条件降序,数据重复问题

2019 年 8 月 17 日
 flyme6

根据时间进行降序查询,(其中时间都是一样的),这时候分页,会出现数据重复,其中表中数据肯定是不重复的。

3924 次点击
所在节点    程序员
17 条回复
zcmxw1
2019 年 8 月 17 日
sql 语句问题吧?
wa8n
2019 年 8 月 17 日
limit,offset 没算对?
yidinghe
2019 年 8 月 17 日
跟排序没关系,查询本身的问题
PHPJit
2019 年 8 月 17 日
当你点击下一页的时候,这个时候有新数据进来了。
twocold0451
2019 年 8 月 17 日
再加个其他排序条件,Oracle 遇到过这个问题
xuanbg
2019 年 8 月 17 日
4 楼正解,需要额外的条件才能避免这个问题
ilovetm
2019 年 8 月 17 日
order by 应该使用多个字段,确认唯一性
dgjungle
2019 年 8 月 17 日
group by 也可以保证唯一性呀
lxy42
2019 年 8 月 17 日
当排序字段有重复值时,顺序是不确定的。
cyssxt
2019 年 8 月 17 日
这个肯定是 sql 的问题,查一下关联表 join 之类的逻辑
xujif
2019 年 8 月 17 日
信息流应用很少用传统的 page 分页,用递增 id 排序。
hhyvs111
2019 年 8 月 17 日
可能这个时候被删了一些数据,然后分页计算失误
pussy2019
2019 年 8 月 17 日
ORDER BY `created_at` ASC,`id` ASC
reus
2019 年 8 月 17 日
既然时间一样,那对时间排序,就等于没有排序,顺序就可以认为是随机的,分页当然不能正确了

应该有一个兜底的排序字段,一般都是用唯一字段,例如自增 id
mmdsun
2019 年 8 月 17 日
MySQL oder by 与 limit 合用会出现这个问题。
waytodelay
2019 年 8 月 17 日
mysql 遇到和你一模一样的问题,排序字段只有时间而且时间有超过分页参数的重复,分页就出问题了,这时加个 id 排序就不会出问题了
flyme6
2019 年 8 月 19 日
@reus 有道理,多谢多谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/592609

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX