2016-11-12 11 views
-1

mysqlデータベースから特定の「ホット」を表すエントリを取得しようとしています。これらのエントリは、「再生済み」(このトラックが何回再生されたか)および「追加された」属性(トラックが追加されたとき(タイムスタンプ形式))のような属性を有する音楽トラックであるとしよう。私はすでに、追加された属性のためのフィルタリングのカテゴリ「最新」と、views属性のフィルタリングのカテゴリ「トップ」を持っています。今、私は両方を組み合わせる必要がある "ホット"というカテゴリが必要です。私はこの公式を思いついた:暑さ=景色/生涯。だから、トラックが何度も演奏されたが、最近追加されたトラックが暑いかもしれない。そして、他の方法でラウンド。それは理にかなっていますか?とにかく:どのように私に最高の "暑さ"を持っているエントリを与えるPHPで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)」のようなものがトラックからの辛さとして何か?あなたは本当にそれに頼る前にいくつかの努力をする必要があります。 – apokryfos

+0

@apokryfos私は「トラックから」と思いますか? – tyler

+0

@tylerはい本当に – apokryfos

答えて

2

実際に暑さを追跡できるようにするには、いつどのトラックが再生されたかの履歴が必要です。

トラックが再生された合計回数と追加された日付が追加されただけで、全期間人気のクエリが可能になります。トラックは数年前に追加されていたものの、今人気が高まっているケースは、それが数年前に追加されたトラックと区別できず、当時は人気があったが、もはやそれではない。

日付、トラックID、およびその日付で再生された回数を保存する新しいテーブルを追加することができます。そして、最後の日、10日間などに多く再生されたすべてのトラックを照会することができます。

関連する問題