2016-03-25 9 views
-2

ContentDetailsテーブルの内容は以下のとおりです。 contentType - ライブ、VOD、映画。mysqlのgroup byクエリを使用して1つのテーブルから複数のレコードを取得する方法

各コンテンツタイプの再生回数は100回(ライブ-100、vod-100、ムービー-100)です。

各contentTypeから複数のレコードが必要です。

問合せ:

SELECT * FROM (SELECT * FROM `ContentDetails ` ORDER BY `contentid ` ASC) AS a GROUP BY `contentType` limit 0,100; 

下回る結果となっaoveクエリをexceuting後。

ライブは1つだけで、1つのビデオと1つの映画が公開されます。

しかし、私の要件は次のとおりです。

10ライブコンテンツ、10のVODコンテンツと10件の映画CONTENS。

答えて

1

はイエス、あなたはquery-

SELECT x.* 
FROM (SELECT t.*, 
       CASE 
       WHEN @category != t.contentType THEN @rownum := 1 
       ELSE @rownum := @rownum + 1 
       END AS rank, 
       @category := t.contentType AS var_category 
      FROM contentDetails t 
      JOIN (SELECT @rownum := NULL, @category := '') r  
     ORDER BY t.contentType,t.contentid) X 
     WHERE x.rank<=10; 
+0

タンクます。その作業罰金の下に使用することができます場合は、各コンテンツタイプから10件のアイテムが必要なように。しかし、私は上記のクエリを理解していない。この質問を説明できますか。 –

+0

助けがあれば、緑色のスティックでこれを受け入れることができます。 :) –

関連する問題