php - mysql sql联合查询如何无缝使用limit翻页
迷茫
迷茫 2017-04-11 09:04:21
[PHP讨论组]

现在 我有个业务逻辑 一个专题表 一个文章表
zhuan 专题表 有专题名
Post 文章表 有文章名

我想无缝对接 根据时间排序进行翻页 是否可以实现

(select id,title from zhuan order by id limit 0,2) union all (select id,title from post order by id limit 0,3)

这样写的话 不能达到无缝翻页啊 ? 求个思路

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(4)
PHPz

楼主不妨试试这样写: 把两张表拼成一张表然后对时间字段排序

SELECT id,title,time,flag FROM (
select id,title,time,'zhuan' flag from zhuan 
UNION ALL
select id,title,time,'post' from post) a GROUP BY time DESC LIMIT 0,10;

根据flag 为 zhuan的 就是 zhuan表,post 就是post表 .

阿神

每个文章都有对应的专题吗?

select a.id,a.title,b.zhuan_name from post a 
left join zhuan b on a.zhuan_id = b.id
order by a.time desc limit 0,10
ringa_lee

不是很理解题主的意思,题主是想先显示专题名,然后翻页再显示文章么?如果是这样的话,可以提供一下思路:比如我每页要显示5条,专题总共有7个,那么第二页只有三个专题,此时就应该显示文章了,所以当limit之后返回数据,可以做一下count条数判断,差多少补多少即可.

伊谢尔伦

已经解决 正确的思路

select id,title,cdn,time FROM (
(select id,title,111 as cdn,time from set_gif where zhuanid = 0) 
UNION ALL
(select id,name as title,222 as cdn,time from set_zhuan) order by time desc) a LIMIT 0,100

把两个union 再括起来 加一个order by 就可以了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号