php - group by后排序问题
大家讲道理
大家讲道理 2017-05-16 13:03:59
[PHP讨论组]

1.针对一个文章,我有N多的评论
2.现在我想获取到每篇文章最新的评论
这个子查询是可以的 ,但是要求是不用子查询,如何实现呢
SELECT FROM (SELECT FROM old_chapter_check_list ORDER BY id DESC) AS t GROUP BY cid LIMIT 10

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
怪我咯

按你的描述你的sql貌似并不满足呢
两种写法
1、一定不要子查询的,确认评论中不包含某种分隔符的话(比如“|||”)使用substring_index(group_concat))函数处理:

select substring_index(group_concat(comment_content order by id desc separator '|||'),'|||',1) cmt,cid from old_chapter_check_list group by cid limit 10;

2、不确定是否包含特殊字符的写法,先取出有最新评论的10个文章最新id值(唯一自增主键的话)再进行联表查询

select a.cid,a.comment_content from old_chapter_check_list a join (select max(id) maxid from old_chapter_check_list group by cid order by maxid desc limit 10) b on a.id=b.maxid;
PHPz
SELECT * FROM old_chapter_check_list GROUP BY cid ORDER BY id DESC LIMIT 10

使用多次查询

SELECT max(id) FROM old_chapter_check_list GROUP BY articleid

查询出每篇文件评论的最大id

根据前面的结果集,在循环中查询最大id对应的评论

select * from old_chapter_check_list where cid = maxid
怪我咯

写个视图直接从视图里取

伊谢尔伦

这样就可以了,id自增,cid自增的情况

SELECT *,MAX(id) max_id FROM old_chapter_check_list GROUP BY cid order by max_id LIMIT 10

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

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