根据时间进行降序查询,(其中时间都是一样的),这时候分页,会出现数据重复,其中表中数据肯定是不重复的。
1
zcmxw1 2019-08-17 05:54:33 +08:00 via Android
sql 语句问题吧?
|
2
wangsongyan 2019-08-17 07:02:32 +08:00 via iPhone
limit,offset 没算对?
|
3
yidinghe 2019-08-17 07:23:18 +08:00 via Android
跟排序没关系,查询本身的问题
|
4
PHPJit 2019-08-17 08:22:13 +08:00 via Android 1
当你点击下一页的时候,这个时候有新数据进来了。
|
5
twocold0451 2019-08-17 08:33:27 +08:00 via Android
再加个其他排序条件,Oracle 遇到过这个问题
|
6
xuanbg 2019-08-17 08:38:47 +08:00
4 楼正解,需要额外的条件才能避免这个问题
|
7
ilovetm 2019-08-17 08:43:25 +08:00 via iPhone 1
order by 应该使用多个字段,确认唯一性
|
8
dgjungle 2019-08-17 08:44:59 +08:00
group by 也可以保证唯一性呀
|
9
lxy42 2019-08-17 11:00:26 +08:00 via Android
当排序字段有重复值时,顺序是不确定的。
|
10
cyssxt 2019-08-17 11:13:27 +08:00 via iPhone
这个肯定是 sql 的问题,查一下关联表 join 之类的逻辑
|
11
xujif 2019-08-17 12:13:52 +08:00 via iPhone
信息流应用很少用传统的 page 分页,用递增 id 排序。
|
12
hhyvs111 2019-08-17 13:49:43 +08:00
可能这个时候被删了一些数据,然后分页计算失误
|
13
pussy2019 2019-08-17 13:57:11 +08:00 1
ORDER BY `created_at` ASC,`id` ASC
|
14
reus 2019-08-17 13:59:18 +08:00 1
既然时间一样,那对时间排序,就等于没有排序,顺序就可以认为是随机的,分页当然不能正确了
应该有一个兜底的排序字段,一般都是用唯一字段,例如自增 id |
15
mmdsun 2019-08-17 14:50:31 +08:00 via Android
MySQL oder by 与 limit 合用会出现这个问题。
|
16
waytodelay 2019-08-17 17:06:50 +08:00 via Android
mysql 遇到和你一模一样的问题,排序字段只有时间而且时间有超过分页参数的重复,分页就出问题了,这时加个 id 排序就不会出问题了
|