数据库取出的数据怎么排重

2017-10-05 08:43:07 +08:00
 edison111cry
如果有 APP 调用后台的接口列表展示,按分页获取一次取 10 条。
然后接口里用 SQL 查询语句 limit index,10;

第一次取时 limit 0,10;
(此时新数据正好进来 10 条)
第二次取时 limit 10,10;

那么 APP 展示的第二次的列表数据岂不是一样的?

这种数据去重的话一般都是怎么来处理?
2351 次点击
所在节点    问与答
6 条回复
phpcxy
2017-10-05 09:01:49 +08:00
接口加个调用时间参数,查询加多个条件小于该时间
edison111cry
2017-10-05 09:12:45 +08:00
@phpcxy 你的意思是指,第一次调用后新加入的数据就不参于第二页以及以后页的展示了是吧?
codingadog
2017-10-05 09:36:19 +08:00
按 id 排序?
acr0ss
2017-10-05 12:19:00 +08:00
这个问题,得看你的数据库是怎么设计的。

1.如果有自增的 id 主键
每次查询把最后一个 id 带上。
where id > ${last_id} limit 10

2.如果没有自增 id ;且按照时间字段倒序。按照 1 楼所属
where modify_time < ${last_modify_time} limit 10
mooncakejs
2017-10-05 15:37:39 +08:00
时间不太靠谱,还是得靠 id,根据 row number 排序。
IceBay
2017-10-05 19:49:29 +08:00
或者带上已推送的 ID ?

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

https://www.v2ex.com/t/395472

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

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

© 2021 V2EX