2016-11-11 74 views
0

我想输出今日的所有条目,按最受欢迎的条目排序(最喜欢=最流行)。显示今日最热门的项目?

我正在使用这个查询,它只是选择过去24小时内最受欢迎的条目,但如果它是0:00点,例如计数应重置为零。如果条目具有相同的计数量,我还想按字母顺序排列。

我怎么能做到这一点?我试图ORDER BY count DESC, p.id DESC,但我认为这似乎并没有使用GROUP BY我假设。

__

这是我的代码:

SELECT 
p.id, COUNT(l.id) AS count, p.title_de, p.de 
FROM 
pages p 
JOIN pages_likes l on l.page_id = p.id 
WHERE 
l.date >= DATE_SUB(NOW(),INTERVAL 1 DAY) 
AND 
l.`status` = 1 GROUP BY p.id 
ORDER BY count DESC LIMIT 6 

此输出例如:

enter image description here

+0

哪有** ** Zocken如果在相同的计数上需要按字母顺序排列,请在** Paprika **之前出现? – Shaharyar

+0

这就是我想要解决的问题。 – AlexioVay

+0

那么你把'name desc'是你想要的吗? –

回答

1

我猜你想只计算从当天的记录?

代替

>= DATE_SUB(NOW(),INTERVAL 1 DAY) 

DATE()

SELECT DATE(NOW()); 

现在删除时间部分的顺序部分:不使用保留字作为别名

SELECT 
     p.id, 
     COUNT(l.id) AS cnt, p.title_de, p.de 

.... 
ORDER BY cnt DESC, p.title_de 
+0

为什么不使用'alias'? – Shaharyar

+0

你说得对,在'WHERE'你不能使用别名。 –