查询两个字段完全不相同的数据表可以做分页吗

现在有两个数据表,一个是商品表,一个是文章表,他们要在同一个前端列表混合显示并做分页,有可能实现吗?麻烦提供下思路,谢谢

阅读 4.9k
6 个回答

你可以合并之后,定制一个排序规则。或者定制一个合并规则。

因为两个表完全没关系,如果你就是想统一处理,比如,你一页10个数据,你要整8篇文章,2个商品,就定义一下在哪个地方插入这两条商品,取到这十个数据遍历整理成一串传到前面,那下一页就相当于取第9到16篇文章,第3到4个商品,一样8个和2个,就可以分页了。不过这样其实挺蛋疼的,增加了后端开销。

所以,你可以直接把这些数据不合并直接往前端扔,前端接收到之后再排一下,想怎么排怎么排。

那,还有可能,你这个玩意本身分页与文章发布,商品创建等时间相关,在sql中可以直接用一个统一的时间作为排序根据进行分页,将两表合并。

其实还是要看你究竟业务是想怎么做和技术实现。

SELECT id, product_name as name,TYPE =0 FROM 商品表
UNION 
SELECT id, title as name,TYPE =1 FROM 文章表 LIMIT 0 , 30

类似这样

可以啊,ajax请求数据,用js做分页,互不干扰

现在有两个数据表,一个是商品表,一个是文章表,他们要在同一个前端列表混合显示并做分页,有可能实现吗?

有。

按照你现在说的可以这样做
另外建一张表
create table mixed_table (
id int unsigned NOT NULL AUTO_INCREMENT,
source_id int unsigned COMMENT '商品id或者文章id',
source_type tinyint unsigned COMMENT '0 商品 1 文章',
PRIMARY KEY (id)
);
其他字段按需添加

新手上路,请多包涵

两张表要是关联表的话,可以实现啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题