首页 > 解决方案 > PHP 和 MYSQLi 按今天最流行的项目排序?

问题描述

我的表中有如下数据:

stuff    stuff    stuff    stuff    date_viewed
whtever  whtever  whtever  whtever  2018-05-15 20:58:31
whtever  whtever  whtever  whtever  2018-05-13 15:32:22
whtever  whtever  whtever  whtever  2018-05-15 23:58:44
whtever  whtever  whtever  whtever  2018-05-05 13:21:32
whtever  whtever  whtever  whtever  2018-05-12 13:21:32
whtever  whtever  whtever  whtever  2018-05-14 12:21:32
whtever  whtever  whtever  whtever  #more dates from today and other days...

我需要从今天开始订购商品,但要订购最受欢迎的商品,例如:

项目(今天查看20)

项目2(今天查看18)

Item3(今日浏览量14)

很快...

我怎样才能做到这一点?

标签: phpmysqli

解决方案


为简化起见,我假设该表已命名table,并且只有两列stuff(某种 ID 或字符串或您拥有的任何内容)和date_viewed包含视图日期和时间的列。

在这种情况下,您的查询可能如下所示:

SELECT stuff, DATE(date_viewed), COUNT(*) AS views FROM `table`
GROUP BY stuff, DATE(date_viewed)
ORDER BY views DESC

查询在做什么?*它. stuff_ _ _ _ _ _ * 然后将结果按和分组,即具有相同项目(“stuff”)和日期的所有条目被放入一个结果行并保留原始行数。* 最后,结果按 ( ) 视图数 ( ,这是) 的别名以降序 ( ) 排序,因此具有最多视图的行排在最前面。date_viewedASviewstablestuffdateviewsORDER BYviewsCOUNT(*)DESC


推荐阅读