2016-11-12 40 views
-1

我试图从我的mysql数据库中获得代表某种“热度”的条目。假设这些条目是音乐曲目,它带有诸如“播放”(该曲目播放了多少次)和属性“添加”(当曲目被添加(以时间戳格式))时的属性。我已经有了“最新”类别,该类别为添加属性和类型“顶部”筛选视图属性。现在我需要将两者结合起来的“热门”类别。我想出了这个公式:hotness = views/lifetime。所以,如果一首曲目已经播放了很多次,但最近添加了它可能会很热。反过来。那有意义吗?无论如何:我怎样才能创建一个SQL查询,它给了我具有最高“热度”的条目?PHP:MY​​SQL:获取条目“热门/上升”

我对顶级类别查询:

$sql = "SELECT * FROM tracks ORDER BY views DESC LIMIT 0,35"; 

查询新的类别:

$sql = "SELECT * FROM tracks ORDER BY added DESC LIMIT 0,35"; 

在此先感谢。

+2

类似'SELECT *,(views /(now() - added))as tracks as hotness from tracks'?尽管如此,你还是需要付出一些努力。 – apokryfos

+0

@apokryfos我假设“从轨道”? – tyler

+0

@tyler确实 – apokryfos

回答

2

为了真正能够跟踪炎热,您必须具有何时播放哪个曲目的历史记录。

曲目播放的总次数和添加的日期只允许查询所有时间流行。多年前添加了一首曲目但现在越来越受欢迎的情况无法与多年前添加的曲目区分开来,当时很受欢迎,但现在已经不复存在了。

您可以添加一个新表格,在该表格中存储日期,曲目ID以及该日期播放的次数。然后你可以查询所有那些在最后一天,10天等很多次播放的曲目。