2012-02-17 19 views
0

私が探しているのは、チューブの先頭ページにビデオを並べ替えることです。すべての動画は、1日ごとにグループ化されます。各ページに複数の日があります。毎日のセクションの中で、私は最も多く見たビデオや他のタイプの第2のソートアルゴリズムでビデオを注文したいと思うでしょう。MySQL - "グループ"を一度に複数回並べ替えて並べ替えて表示する

望ましい結果:

Todays Videos: 
    - Video 1 (100 views) 
    - Video 2 (90 views) 
    - Video 3 (50 views) 

Yesterdays Videos: 
    - Video 4 (400 views) 
    - Video 5 (250 views) 
    - Video 6 (100 views) 

Feb 15th Videos: 
    - Video 7 (600 views) 
    - Video 8 (500 views) 
    - Video 9 (300 views) 

2ページ目が

FYI

、私はそれはおそらく最良の方法はありません知っている... 2月14日、13日などで継続するよう次に改ページは、あるだろうデータベース構造体は、int(11)フィールドに格納されたunixタイムスタンプを使用します。

私はCodeIgniterを使用していますが、通常のMySQLの例であれば問題ありませんが、私は単一のクエリでこれを行いたいと思います。私がgroupby/orderbyまたは他の機能でこれを行うことができるかどうかはわかりません。私はグループ分けセットを読んでいましたが、正しいトラックにいるかどうかはわかりません。

私は完全にこの1つにこだわっているので、任意の助けが素晴らしいだろう。

編集(テーブル構造の追加):

video_pk int(10) unsigned NOT NULL auto_increment 
views int(10) unsigned NOT NULL 
scheduled_date int(11) NOT NULL 

scheduled_dateは、サイモンは、上記のコメントで述べたと同様scheduled_dateフィールドがために、ちょうど日付だった場合、それははるかに簡単だろうUnixタイムスタンプ

+0

あなたが現在持っているデータベーススキーマ、つまりテーブルデザインを提供できれば、それは役に立ちます –

+0

まだdbテーブルを設計/作成しましたか? – inhan

+0

GROUP BY 'date' ORDER BYビューのような文で順序を並べ替えることができるはずです。DESC – MysticXG

答えて

0

ですあなたが使っているものこれがそうであったならば、あなたは次のクエリで結果を得ることができます。タイムスタンプとしてそれを

SELECT 'scheduled_date', 'video_pk', 'views' FROM 'table' 
GROUP BY 'scheduled_date',video_pk ORDER BY 'scheduled_date','views' DESC 

あなたはビデオが同じであるかどうかを判断するためにいくつかの方法を持っている必要がありますように、物事はより複雑になりますあなたが望むように単一のクエリでそれを行うのは難しくなります。

編集:サイトの他の部分で使用するタイムスタンプとして保存したいとお伝えしました。おそらく、可能な解決策は、日付とともにタイムスタンプを格納する追加フ​​ィールドを保持することです。特定の時刻と重要な日付が不要な場合は、必要なときに日付をタイムスタンプに変換できます。

+0

違いがあるのか​​どうかはわかりませんが、タイムスタンプは1時間/分ではなく1日あたりです。だから昔のビデオはすべて同じタイムスタンプを持っています。 – Chris

+0

タイムスタンプがその日のすべての動画で同じ場合は、タイムスタンプでグループ化できます。 – MysticXG

+0

こんにちは、もう一度試してみる必要があります。私はこれを試してみると、ある日、すべてのビデオを1つのビデオ行にグループ化していたので、明らかに間違ったことをしたに違いありません。 – Chris

関連する問題