sql语句按评论数排序
web SQL 2017-05-08 2192 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6281131 2594 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

先呈上我自己修改的sql语句

$sql = "select a.*,aa.id,count(aa.id) as countNum,c.catName,s.staffName
	from __PREFIX__articles a left join __PREFIX__article_appraises aa on a.articleId=aa.articleId,__PREFIX__article_cats c,__PREFIX__staffs s 
	where a.articleFlag=1 and a.catId=c.catId and a.staffId = s.staffId GROUP BY a.articleId ";
if($catId>0){
	$sql .= " and a.catId=$catId";
}
if(I('articleTitle')!='')$sql.=" and articleTitle like '%".$articleTitle."%'";
$sql.=' order by';
if($good>0){
	$sql .= " good desc,";
}
if($bad>0){
	$sql .= " bad desc,";
}
if($appraise>0){
	$sql .= " countNum desc,";//根据评论数排序
}
$sql.=' articleId desc';
下面是网上的知识点:

SELECT 
    posts.id, 
    posts.content, 
    comments.id AS comment_id,
    comments.body,
    count(comments.id)
FROM posts
LEFT JOIN comments --左连接,保证左表posts中没有评论的文章也显示出来
ON posts.id = comments.post_id 
GROUP BY posts.id --分组,配合count(comments.id)统计到每篇文章的评论数
ORDER BY count(comments.id) DESC, posts.id DESC --按评论数排序,相同则按文章ID排序
LIMIT 2 OFFSET (3-1)*2 --分页,2表示每页显示的文章数量,3表示第3页
下面是知识点二
1,在文章表里面加个字段叫评论数,然后每次有这篇文章新的评论就同时把它加1,然后根据这个字段排序即可
2,如果只拿文章ID的排序,可以在评论表里面这样做:
select post_id from comment group by post_id order by count(1) desc limit 0, 10;
其中post_id是文章ID,comment是评论表,这个语句拿到评论数最多的前10篇文章ID

版权声明:本篇文章来源于网络。 来源链接

相关推荐
Mysql 使用AVG聚合函数时,保留两位小数的方法
SQL | 2020-09-28 5065
关于查询最高分、最低分和平均分的 SQL 语句时突然想把 AVG 函数的保留小数设置为两位 SELECT MAX(student_result) AS 最高分,MIN(student_result) AS 最低分,CAST(AVG(student_result) AS DECIMAL(10,2)) AS 平均分 FROM resu...
sql语句统计每天、每月、每年的数据
SQL | 2017-09-18 4272
1、每年 select year(ordertime) 年, sum(Total) 销售合计 from 订单表 group by year(ordertime) 2、每月 select year(ordertime) 年, month(ordertime) 月, sum(Total) 销售合计 from 订单表 group by yea...
评论:0条
评论加载中...
发表评论