2016-11-12 62 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天等很多次播放的曲目。