首页 > 解决方案 > 按喜欢和不喜欢对评论进行排序

问题描述

请帮忙,更正查询,我需要按喜欢和不喜欢对评论进行排序(即按喜欢和不喜欢的总和:cnt_total = cnt_like + cnt_dislike,上面显示谁有更多的cnt_total),如果cnt_total等于-按日期排序。cnt_total 只是一个例子,它不在表中。

带有列的表评论:id_comment、id_user、id_news、comment、id_parent、date_time、cnt_like、cnt_dislike、is_active。

SELECT u.login, c.* 
FROM comments c
LEFT JOIN users u ON u.id = c.id_user
WHERE id_news = '{$id_news}' AND c.is_active = 1 
ORDER BY id_parent, date_time DESC

标签: mysql

解决方案


试试这个:

SELECT u.login, c.*, c.cnt_like + c.cnt_dislike AS cnt_total 
FROM comments c
LEFT JOIN users u ON u.id = c.id_user
WHERE id_news = '{$id_news}' AND c.is_active = 1 
ORDER BY cnt_total DESC, date_time DESC

推荐阅读