【问题标题】:Show most popular items of today?显示今天最流行的项目?
【发布时间】:2016-11-11 14:44:32
【问题描述】:

我想输出 today 的所有条目,按最受欢迎的条目排序(最喜欢 = 最受欢迎)。

我正在使用这个查询,它只选择过去 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

这个输出例如:

【问题讨论】:

  • 如果相同计数需要按字母顺序排列,Zocken 怎么能排在 Paprika 之前?
  • 这就是我想要解决的问题。
  • 好吧,你把name desc是你想要的吗?
  • 然后只需按子句顺序添加p.title_deORDER BY count DESC, p.title_de

标签: mysql sql select


【解决方案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

【讨论】:

  • 为什么不使用alias
  • 你是对的,在 WHERE 上你不能使用别名。
猜你喜欢
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 2011-03-15
  • 2020-04-03
  • 2017-01-12
  • 1970-01-01
相关资源
最近更新 更多