分页查询,每8个商品中同一个店铺的只能有1个,求指导。

悠树 发布于 2016/06/30 11:55
阅读 683
收藏 1

在分页查询中,假设每页取12个商品,分页数据里面每8个商品中同一个店铺的只能有1个,除非没有其他店铺的商品。商品表有个店铺ID列。

没头绪,求思路,3Q。

Java+Mysql

加载中
0
辉火
辉火
剩下的四个喂狗?
梦天126
在看你头像。。。我实在受不了了。。。
辉火
辉火
听说过union么?
悠树
悠树
就是后面4个可以出现和前8个商品中同一个店铺的.
0
death_rider
death_rider
多加一列用来排序的ID,每次插入新商品时,此id设置为此商户的排序id的最大值加8
death_rider
death_rider
应该不是加8,而是加一个比较大的数,这个数需要大于最大的商户数
0
奔跑的菜菜
奔跑的菜菜

12件商品中,每8个只允许重复一家店铺,

换句话说一页12件商品里也只能重复一家,多一家都会破坏前提条件,

我能想到最简单的方法就是两条sql的结果组合起来,

第一条sql找11件不同店铺的商品;

第二条sql在商品库中排除前11件商品,再找1件商品,

不论哪家店铺,是否重复,都无所谓了。

0
夜半
夜半
留个爪印,回头也来看看。
0
蓝纸人
蓝纸人

方案:假设A~Z 26家店铺(或更多),这个商品表里不仅要有原来的店铺id再加一个orderId,每家店铺的orderId均从1开始,每来一件商品orderId在此店铺最大的orderId的基础上+1,查询时候只需要先按照orderId排序在按照店铺id排序即可,这样不仅满足每连续的8条不会重复,还会使店铺的商品分部更加均衡,大家觉得捏!

士别三日
士别三日
这个方法是很好,但是要考虑存量数据的问题
0
Ho1den
Ho1den
Ho1den
new
0
士别三日
士别三日

select shop_id,create_time from test_order t group by shop_id,create_time order by create_time

先类似这样排序,然后再按正常分页方法分页

0
shijacky
shijacky
这种做临时表吧,根据规则用后台程序把数据放临时表
0
李剑
李剑
留个脚印看看最后结果
返回顶部
顶部